我创建了包含test.sh
命令的文件ls -ltr & jobs
。当我运行它时,它会给我ls -ltr
的输出,但对于jobs
命令,它不会给我任何东西,甚至不会给出错误.4
怎么了?
答案 0 :(得分:1)
jobs
是一个交互式命令 - 它不是要从脚本中使用,也不是在脚本中做任何有用的事情(但它可能在从shell调用的shell函数中做一些有用的事情一个交互式会话;所以在代码中禁用它也不是真的合适。
要跟踪后台作业,请在启动时收集它们的PID。
ls -ltr &
pid=$!
printf 'pid: %s' "$pid"