【发布时间】:2020-03-04 04:58:14
【问题描述】:
我创建了一个名为am.sh 的shell 脚本,它创建文本并将其放入文件中。我现在想创建另一个脚本,它将接受am.sh 创建的文本文件,比如words.txt 和一个数字,所以使用以下命令:
./bm.sh words.txt 5
将输出 words.txt 文件中包含的前 5 个单词。
到目前为止,我所做的所有脚本都只使用一个参数,因此我很困惑。到目前为止,我想出的是:
#!/bin/sh
grep '[A-Za-z]' | while read
do
echo " $a "
done
但我需要一种方法来接受用户想要的字数,然后我需要创建一个将从文本文件输出的循环。
【问题讨论】:
-
好的,是的,这可能对你有帮助...tecadmin.net/tutorial/bash-scripting/bash-command-arguments
-
首先,如果你可以使用 bash,那么你的第一行应该是
#!/bin/bash。它将提供更多功能。要遍历参数,您可以使用for i in "${@}"; do echo $i; done。$i在每次迭代期间将是要处理的下一个参数。如果引用,您的空格分隔的参数将被保留。例如,如果您的参数是my "dog has" fleas,那么您有 3 个参数"my"然后是"dog has",最后是"fleas". You can use"${@:2}"` 以获取以第二个参数"${@:3}"开头的所有参数从第三个开始,以此类推。