【问题标题】:How to use the file names passed as input to shell script using loop statements?如何使用循环语句将文件名作为输入传递给 shell 脚本?
【发布时间】:2023-07-07 07:34:02
【问题描述】:

我将随机数量的文件传递给 shell 脚本并尝试 使用 for 循环打印它。我尝试了以下方法。

cat >> script.csh
for (( i=1; i<=$#; i++ ));
do
echo $i
done

所以如果我这样做 ./script.csh xyz.txt abc.txt pqr.txt

我希望输出是

xyz.txt

abc.txt

pqr.txt

但我得到的输出是

1

2

3

非常感谢任何帮助。谢谢

【问题讨论】:

  • 这实际上是一个 csh 脚本吗? ((...)) 那里合法吗?
  • @singe31 $i${i} 相同。
  • 使用for arg; do echo "$arg"; done循环遍历sh/bash中的所有参数。
  • 你好 Etan Reisner...它正在工作....非常感谢

标签: shell csh


【解决方案1】:

您可以使用以下语法遍历程序参数:

for i in "$@"; do
    echo $i
done

【讨论】:

  • 谢谢。是的,这是有效的