我希望该程序可用于任意数量的参数,因此我正在使用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
在我放置>>的行上,它仅替换数字。如果我输入$ @,它将只列出所有参数。
答案 0 :(得分:0)
for args in $(seq 1 $#)
遍历数字1 2 3 4 .... $#。您想遍历参数。也是这样:
for args in "$@"
"$@"
将扩展为单独且正确转义的参数。
if [ $OUTPUT = "${args[@]}" ]
args
不是数组,而是变量。只是
if [ "$OUTPUT" = "$args" ]
并记住始终引用变量。