![nohup:无法运行命令“。”:权限被拒绝](https://linux22.com/image/116275/nohup%EF%BC%9A%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E2%80%9C%E3%80%82%E2%80%9D%EF%BC%9A%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我尝试使用以下命令执行我的脚本:
nohup . test.sh
和
nohup . ./test.sh
然而,我得到的是:nohup: failed to run command `.': Permission denied
每次。
我真正想做的是在我的脚本中能够调用我已别名的命令,但它仅适用于“ . test.sh
”或“ . ./test.sh
”,而不适用于“ ./test.sh
”或“ sh ./test.sh
”,因为我收到“找不到命令”。但我希望能够使用“nohup”来运行它。
答案1
nohup
运行可执行文件。您需要向其传递外部命令,即可执行文件。您不能nohup
调用 shell 构造,例如别名、函数或内置函数。nohup
运行一个新进程,它不会在现有的 shell 进程中运行某些内容(因为nohup
它本身是一个单独的进程),所以nohup . …
没有意义。
nohup ./test.sh
是使用 nohup 运行 shell 脚本的正确方法。确保脚本正确地以 shebang 行 ( #!/bin/sh
) 开头,并且文件可执行 ( chmod +x ./test.sh
)。