【Linux】シェルスクリプトを実行するには?パーミッションを確認し実行権限を与えよう

Linux_ファイルパーミッション_設定変更 オペレーティングシステム

シェルスクリプトを実行するには設定を変更する必要があります.

パーミッションがないためエラー|クリックして拡大できます

今回はファイルに実行権限を与えシェルスクリプトを実行する方法を紹介します.

ファイルに実行権限を付与する

ファイルを作成した段階ではまだファイルの実行権限はありません.
ls -lコマンドでファイルの設定情報を確認してみましょう.

ファイルの実行権限を確認する|クリックして拡大できます

-rw-r--r--20231017_shell_exec.shファイルのパーミッション情報です.

パーミッションの読み方

パーミッションについて軽くおさらいしておきます.

1文字目はファイルタイプを表します.
-はファイル,dはディレクトリを意味します.

rw-r--r-- 2文字目~10文字目はユーザーやグループが持つ権限を表します.
これは3つに区切ることができます.

  • 1区切り目(2文字目~4文字目):ファイル所有者に対する権限
  • 2区切り目(5文字目~7文字目):ファイル所有グループに対する権限
  • 3区切り目(8文字目~10文字目):その他に対する権限

そしてアルファベットはこのような意味を持ちます.

アルファベット意味
r読み取り権限
w書き込み権限
x実行権限
権限なし
権限一覧

以上から20231017_shell_exec.shはファイルタイプがファイルであり,所有者(自分)は読み取り権限と書き込み権限があると分かります.

実行権限がなかったため,シェルスクリプトを実行できなかったんですね.

chmodコマンドで権限を変更する

ファイルやディレクトリのパーミッションを変更するにはchmodコマンドを使います.
chmodは change mode の略語ですね.

$ chmod ファイルモード <ファイル名>

chmodコマンドは2つの方法でパーミッションを変更できます.

  1. シンボルモード
  2. 数値モード

今回はシンボルモードで20231017_shell_exec.shに実行権限を与えます.

$ chmod u+x ./Linux/20231017_shell_exec.sh
ファイルの実行権限を変更する|クリックして拡大できます

u+xとすることでファイル所有者(オーナー)にx(実行権限)を与えました.
ls -lコマンドで確認するとファイル所有者の欄にx(実行権限)が増えていますね!

ファイルパスを入力する

ターミナルでファイルまでのパスを入力し実行します.

$ ./PATH/ファイル.sh
パーミッションを変更したので実行できる|クリックして拡大できます

変数が出力できました!

シェルスクリプトがうまく実行できないときはファイルパーミッションを確認しましょう.

まとめ

今回はシェルスクリプトを実行する方法を紹介しました.

ファイルを作成したデフォルトの状態では実行権限がないので,シェルスクリプトを実行する前にパーミッションを変更しておきましょう.

エラーが出た場合も焦る必要はありません.メッセージ(Permission denied)を読み,権限不足にきづければ楽勝ですね!