Shell脚本与TaskSet一起运行

时间:2012-07-15 07:30:06

标签: linux loops ubuntu cpu

我在ubuntu上运行以下命令:

taskset -c 1 ./forLoop

并且它给我以下错误:

./forLoop: 1: Syntax error: Bad for loop variable

forLoop中的内容如下:

for ((  i = 0 ;  i <= 1000000;  i++  ))
do
  echo "Welcome $i times"
done

简单地./forLoop确实自己执行,但我想将该过程附加到某个亲和力。我可以吗?

1 个答案:

答案 0 :(得分:4)

这种情况很可能发生,因为您使用的是Ubuntu,并且调用了名为dash的解释器,而不是bash

平凡地输入以确认:

dash ./forLoop    

您应该看到相同的“for loop”错误。

解决此问题的一些方法:

  • 强制使用`bash`:`taskset -c 1 bash。/ foo.sh`
  • 将`#!/ bin / bash`写为脚本的第一行。
  • 将循环代码更改为与破折号兼容,如下面的链接所述。

在此处阅读更多内容:https://wiki.ubuntu.com/DashAsBinSh/