sudo でスクリプトを実行するにはどうすればいいですか? 「.: コマンドが見つかりません」というメッセージが表示されます

sudo でスクリプトを実行するにはどうすればいいですか? 「.: コマンドが見つかりません」というメッセージが表示されます

スクリプトを実行したいのですが、スクリプトcdにはいくつかの が含まれているため、次のように実行する必要があります。

. /scriptfile

sudoこれは動作しますが、スクリプト内にも があります。すべて動作していますが、スクリプト ファイルからsudoすべての を削除できるように、スクリプト全体を で実行してみたいと思いました。 しかし、次の ( で)は実行できませんでした。sudo
sudo

sudo . /scriptfile

走ろうとすると

sudo: .: command not found  

これに対する回避策はありますか?

答え1

走らなければならない

sudo ./scriptfile

あなたがしようとした

sudo . /scriptfile

これは、ドットの後のスペースが原因で異なります。.または、それに相当するものは、sourceコマンドではなく、シェルの組み込みコマンドです。そのため、試したコマンドでエラーが発生しますsudo: .: command not found

注記:

./scriptfile

scriptfile現在のディレクトリにある名前のファイルを実行します。ファイルは実行可能である必要があります。

. /scriptfile

ファイルをソースします/scriptfile(ここでは絶対パスであることに注意してください)。これを行うには、ファイルが実行可能である必要はなく、読み取り可能であるだけで十分です。

答え2

事前に実行しておけsudo suば、あとは実行するだけです./scriptfile

関連情報