linux – 迭代命令行参数对

我有一个超过400个坐标,我想作为参数传递给一个字符串,但我不知道如何将第一个参数作为“lat”传递,第二个参数传递为“lng”,依此类推.

说我过去了

./test 1 2 3 4

我想要我的输出

coordinate: {lat: 1, lng: 2}
coordinate: {lat: 3, lng: 4}

这是我到目前为止所做的,但显然这不是它的完成方式.

for i in $@
do

    echo "coordinate: {lat: $i, lng: $i}"

done

解决方法:

#!/usr/bin/env bash
while (( "$#" >= 2 )); do
  echo "coordinate: {lat: $1, lng: $2}"
  shift 2
done

注意移位;移位在许多圈子中比移位2更受欢迎,因为它甚至只剩下一个参数; shift 2之上是安全的,因为我们正在比较$#以确保始终存在两个或更多个参数.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...