Sha*_*dar 4 unix linux bash shell
我有超过400个坐标要作为参数传递到字符串中,但是我不知道如何将第一个参数传递为“ lat”,第二个参数传递为“ lng”,以此类推。
说我在传递
./test 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是
coordinate: {lat: 1, lng: 2}
coordinate: {lat: 3, lng: 4}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我所拥有的,但是显然这不是这样做的。
for i in $@
do
echo "coordinate: {lat: $i, lng: $i}"
done
Run Code Online (Sandbox Code Playgroud)
#!/usr/bin/env bash
while (( "$#" >= 2 )); do
echo "coordinate: {lat: $1, lng: $2}"
shift 2
done
Run Code Online (Sandbox Code Playgroud)
请注意,shift; shift在许多圈子中shift 2,它是首选而不是,因为它可以工作,甚至只剩下一个参数。shift 2之所以安全,仅是因为我们正在进行比较$#以确保始终有两个或多个参数。