因为{00..03}中的i不适用于nohup

时间:2016-01-25 07:11:22

标签: linux bash for-loop

提交给nohup的for循环不起作用,通常是:

  $ for i in {00..03};do echo $i;done
  00
  01
  02
  03

但是将这些代码写入test.sh,nohup ./test.sh&给出以下输出:

  $ nohup ./test.sh &
  {00..03}

无法生产00 01 02 03,为什么? PS。在debian 8或ubuntu 15.10('seq -w'作品)

2 个答案:

答案 0 :(得分:3)

如果您的文件没有shebang,则取决于shell nohup运行脚本。将此行添加到文件中:

  #!/bin/bash

答案 1 :(得分:1)

由于大括号扩展不是POSIX shell功能,并且许多系统服务在POSIX模式下运行,因此无效。

仅使用

解决这个问题的便携方法就是使用

for i in 00 01 02 03; do
  something
done

如果你养成了以POSIX方式做事的习惯,那么你会遇到更少的惊喜。