2

我在 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自己执行,但我想将该过程附加到某个亲和力。我可以吗 ?

4

1 回答 1

4

这很可能会发生,因为您在 Ubuntu 上并且dash调用了名为的解释器而不是bash.

简单地说,键入以下内容以确认:

dash ./forLoop    

您应该会看到相同的“for 循环”错误。

解决此问题的一些方法:

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

在这里阅读更多:https ://wiki.ubuntu.com/DashAsBinSh/

于 2012-07-15T07:37:21.243 回答