原因

原因可能是其他进程或者其他用户正在打开编辑您的脚本。
如果脚本文件是被打开的,则bash会报这个错误。

问题

远程ssh执行shell脚本时,报错:

/bin/bash: bad interpreter: Text file busy

/bin/bash: bad interpreter: Text file busy

解决方案

使用lsof命令列出打开的文件:

# lsof | grep myscript.sh

输出示例:

cat       2381      root    1w      REG                8,2     1374   28409914 /home/jack/myscript.sh
cat       5233      root    1w      REG                8,2     1374   28409914 /home/jack/myscript.sh

使用kill命令杀死那些进程或者等待进程结束:

# kill 2381 5233

重新运行脚本:

# ./myscript.sh
日期:2019-11-20 08:53:04 来源:oir作者:oir