$$是否可以获取要迭代的变量的值?

时间:2019-03-31 00:27:21

标签: bash shell

我希望该程序可用于任意数量的参数,因此我正在使用for循环遍历它们。我如何获得价值?

#!/bin/bash
count=0
arr=($(head -n1 file.csv| sed 's/,/ /g'))
for args in $(seq 1 $#)
do
  >> for OUTPUT in "${arr[@]}"
  do 
         if [ $OUTPUT = "${args[@]}" ]
         then
            echo $((count +1))
         else 
            count = $((count+1))
         fi
   done
   count=0
 done

在我放置>>的行上,它仅替换数字。如果我输入$ @,它将只列出所有参数。

1 个答案:

答案 0 :(得分:0)

for args in $(seq 1 $#)

遍历数字1 2 3 4 .... $#。您想遍历参数。也是这样:

for args in "$@"

"$@"将扩展为单独且正确转义的参数。

if [ $OUTPUT = "${args[@]}" ]

args不是数组,而是变量。只是

if [ "$OUTPUT" = "$args" ]

并记住始终引用变量。