如何编写 bash 脚本来标记每个参数,如下所示:
How to write a bash script to label each argument like this:
$ bash argcnt.sh this is a "real live" test
is
real live
(只显示成对参数)
因为,我只知道这样:
#!/bin/bash
echo ""
echo ""
您似乎想要打印给脚本的所有其他参数。然后,您可以在 $@
:
上创建一个循环
#!/bin/bash
# idx will be 2, 4, 6 ... for as long as it's less than the number of arguments given
for ((idx = 2; idx < ${#@}; idx += 2))
do
# variable indirection below:
echo "${!idx}"
done
注意:您也可以使用 $#
而不是 ${#@}
来获取 $@
中的元素数。不知道一般人更喜欢哪一款
如果你想要打印每隔一个参数,从第二个开始,你可以使用 shift
:
$ cat argcnt
#!/bin/bash
while shift; do printf '%s\n' ""; shift; done
$ ./argcnt this is a "real live" test foo
is
real live
foo
$ bash argcnt.sh this is a "real live" test
is
real live
(只显示成对参数)
因为,我只知道这样:
#!/bin/bash
echo ""
echo ""
您似乎想要打印给脚本的所有其他参数。然后,您可以在 $@
:
#!/bin/bash
# idx will be 2, 4, 6 ... for as long as it's less than the number of arguments given
for ((idx = 2; idx < ${#@}; idx += 2))
do
# variable indirection below:
echo "${!idx}"
done
注意:您也可以使用 $#
而不是 ${#@}
来获取 $@
中的元素数。不知道一般人更喜欢哪一款
如果你想要打印每隔一个参数,从第二个开始,你可以使用 shift
:
$ cat argcnt
#!/bin/bash
while shift; do printf '%s\n' ""; shift; done
$ ./argcnt this is a "real live" test foo
is
real live
foo