0

所以我现在在学校学习 shell 脚本,我正在做这个作业并且被卡住了。我们的教授/助教将通过运行简单的命令来测试这个问题的答案,例如:

echo <random numbers>| sh question1

随机数可以是任何东西。IE

echo 7 8| sh question1 所以我并没有试图得到作业问题的答案,但我知道如何解决这个问题,但是,我遇到了一些障碍。

我在question1文件开头尝试了这样的事情:

VAR1=tr -d [" "]

我对此的思考过程是,我试图删除它给我的数字之间的任何空格并将其放入变量中。但现在我想知道如何迭代变量中的数字

我可能用了 2-3 周的时间来编写 shell 脚本,而且我首先学习了 python,所以我什至不确定我是否可以迭代它。但我认为可能有一种方法可以让我获取文件的内容,遍历它们并且一次可以访问一个字符或整数。这甚至可能吗?我花了很多时间试图找到解决方案。

任何帮助都会很棒!

4

2 回答 2

2

这个例子有帮助吗?

for i in $* 
    do
    echo $i
done 

$*是命令行参数的列表,所以运行它./file.sh a b c会打印 abc

您的输入显然出现在管道上,所以接下来执行此操作

echo 1 2 3 | xargs ./file.sh

xargs将管道值转换为 shell 程序参数值

于 2013-09-30T08:03:14.320 回答
0

Vorsprung 答案的另一种方法是读取脚本中的单行输入,然后使用它来设置该脚本的参数。在脚本的顶部:

read line
set -- $line

然后你可以使用相同的 for 循环:

for i in $*; do
    echo $i
done

这做出了与 Vorsprung 相同的假设:输入将是单行以空格分隔的值。如果这个假设是错误的,我希望你的导师能更具体地说明你的脚本应该能够接受的输入类型。

于 2013-09-30T13:48:30.867 回答