Bash 如何在shell脚本的for循环中将参数传递给程序

Bash 如何在shell脚本的for循环中将参数传递给程序,bash,shell,for-loop,arguments,Bash,Shell,For Loop,Arguments,我在实现一个非常简单的shell脚本时遇到了一些问题。我想运行一个命令行输入2-100作为程序参数之一的程序,并将结果指向另一个文件,即 for (( c=2; c<101; c++)) do ./virtmem 100 $c fifo sort2 >> results/FIFOSORT.txt done for((c=2;c>results/FIFOSORT.txt) 完成 但是这不太管用,因为它说fifo不是一个程序。有什么建议吗?谢谢你的帮助。virtmem对这

我在实现一个非常简单的shell脚本时遇到了一些问题。我想运行一个命令行输入2-100作为程序参数之一的程序,并将结果指向另一个文件,即

for (( c=2; c<101; c++))
do
   ./virtmem 100 $c fifo sort2 >> results/FIFOSORT.txt
done
for((c=2;c>results/FIFOSORT.txt)
完成

但是这不太管用,因为它说fifo不是一个程序。有什么建议吗?谢谢你的帮助。

virtmem对这些参数做了什么?如果它试图将“fifo”作为另一个脚本运行,可能fifo需要“chmod+x”使其可执行?

尝试这样做

`./virtmem 100$c fifo sort2>>结果/FIFOSORT.txt
`

还是这个

/virtmem 100$c“fifo”“sort2”>>结果/FIFOSORT.txt


我想它会解决你的问题。

Virtmem是一个以两个整数和两个字符串作为参数的程序。第一个整数必须始终为100,而第二个整数必须在2-100之间变化,并且必须记录结果。Fifo和sort2只是该程序的最后两个参数,而不是其他脚本。它是一个具有第一个整数是页数,第二个整数是帧数。这两个字符串是替换算法和测试函数。我会听它说,如果它认为“fifo”不是程序,那么它认为“fifo”不是程序。也就是说,如果$c替换为常数,比如说,2,会发生什么(在另一篇评论中被认为是有效的)。我怀疑这将是相同的错误,使变量的使用成为一种误导。如果您从命令行粘贴准确的输出,这将有所帮助。在我看来,这似乎是一个内部
virtmem
问题。感谢pst和bacchus,virtmem需要重新编译,并且引号需要在fifo和sort2附近。这两个单独都不起作用,谢谢一吨。