私はスクリプトを実行してみました:
Nohup . test.sh
そして
Nohup . ./test.sh
しかし、私は得ました:Nohup: failed to run command `.': Permission denied
毎回。
私が実際にやろうとしているのは、スクリプト内で、エイリアスを設定したコマンドを呼び出せるようにすることですが、 ". test.sh
"または" . ./test.sh
"ではなく" ./test.sh
"または" sh ./test.sh
""コマンドが見つかりません "と表示されますが、" Nohup "で実行できるようにしたいと考えています。
Nohup
は実行可能ファイルを実行します。外部コマンド、つまり実行可能ファイルを渡す必要があります。エイリアス、関数、組み込みなどのShell構成要素でNohup
を呼び出すことはできません。 Nohup
は新しいプロセスを実行し、既存のシェルプロセス内では何も実行しません(Nohup
自体は別のプロセスであるため)Nohup . …
は意味がありません。
Nohup ./test.sh
は、Nohupでシェルスクリプトを実行する正しい方法です。スクリプトがシバン行(#!/bin/sh
)およびファイルが実行可能であること(chmod +x ./test.sh
)。