CentOS 7を使用しています。
私は最初のbashスクリプトを次のように記述しました。
#!/bin/bash
echo 'this is my first code'
hello_worldとして保存しました
ルートホームディレクトリにディレクトリを作成しました。
mkdir bin
次に、スクリプトを~/bin
ディレクトリに移動しました。
それから私はこれをしました:
export PATH=~/bin:"$PATH"
source ~/bin
次に、以下のコマンドでスクリプトを実行してみました。
hello_world
this is my first code
は表示されませんでしたが、代わりにbash: /root/bin/hello_world: Permission denied
エラーが発生しました。
(bash ~/bin/hello_world
のように)スクリプトを明示的なインタープリターで実行せずに実行可能にするには、スクリプトファイルに「実行可能ビット」が設定されている必要があります。これはchmod
で行われます(そのマニュアルを参照):
chmod u+x ~/bin/hello_world
これにより、ファイルの所有者の実行可能ビットが設定されます。
または、
chmod +x ~/bin/hello_world
これにより、現在のumask
に従って実行可能ビットが設定されます。 umask
が022
(一般的なデフォルト)であるとすると、すべてのユーザーが実行可能になります。
実行したsource
ステップは意味がなく、エラーメッセージが表示されているはずです(ディレクトリを取得できません)。
新しいPATH
の設定を「永続的」にする必要がある場合は、export PATH
行をシェルの起動ファイル(bash
をインタラクティブシェルとして使用している場合は~/.bashrc
)に追加します。
また、対話型のルートプロンプトでの作業は避けてください。テストと探索には特権のないユーザーアカウントを使用し、管理タスクを実行する必要がある数回はそのアカウントのSudo
を使用します。