我尝试使用以下命令执行我的脚本:
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
)。