CentOS 7を使用しています。
私はこのように最初のbashスクリプトを書いた。
#!/bin/bash echo 'this is my first code'
私はそれを次のように保存します。こんにちは世界
私のルートホームディレクトリにディレクトリを作成しました。
mkdir bin
その後、スクリプトをその
~/bin
ディレクトリに移動しました。それから私はそうしました。
export PATH=~/bin:"$PATH" source ~/bin
その後、次のコマンドを使用してスクリプトを実行してみました。
hello_world
しかし、私はそれを見ることができませんが、エラーがthis is my first code
発生しますbash: /root/bin/hello_world: Permission denied
。
答え1
明示的なインタプリタを実行せずにスクリプトを実行するには(図を参照bash ~/bin/hello_world
)、スクリプトファイルに「実行可能ビット」セットが必要です。これは次のように行われますchmod
(マニュアルを参照)。
chmod u+x ~/bin/hello_world
ファイル所有者の実行可能ビットを設定します。
または、
chmod +x ~/bin/hello_world
これは現在umask
。umask
022
実行した手順はsource
無意味で、エラーメッセージが表示されます(ディレクトリをインポートできません)。
PATH
新しい設定を「永続的に」設定する必要がある場合は、この行をexport PATH
シェルの起動ファイルに追加します(対話型シェルを~/.bashrc
使用している場合)。bash
また、対話型ルートプロンプトで作業しないでください。テストとナビゲーションのためにsudo
管理タスクを実行する必要がある場合は、特権のないユーザーアカウントを使用してください。