##概要
普段の業務をスクリプトにして集計やコンテナの立ち上げなどを自動実行させることができるようになったのですが、久しぶりにスクリプトを作成しようとした際に色々と忘れていたので簡単にファイルの作成〜実行をまとめておきます。
###ファイルを作成
ターミナル
touch test.sh
###ファイルを開く
- vimを使いたい人
ターミナル
vim test.sh
- 普段使っているEditorを使いたい人
ターミナル
open test.sh
###ファイルの編集
- 今回はtouchコマンドを使ってtest2というファイルを生成をするスクリプトを実行できるようにします。
test.sh
#!/bin/bash
touch test2
###作成したファイルに実行権限を付与
- 以下のようにlsコマンドに
-l
オプションをつけることでそのファイルに与えられている権限を確認することができます -
r
は読み込み権限。w
は書き込み権限(左から 2~4 文字目ファイル所有者の権限) - 実行権限に当たる
x
がないので付与する必要がある。付与することでファイル内に記載したスクリプトを実行できるようになります。
ターミナル(権限の確認)
$ ls -l test.sh
-rw-r--r--@ 1 matsunagatakahisa staff 23 3 9 12:55 test.sh
- chomdコマンドに
+付与する権限 権限を付与したいファイル名
を渡すことで以下のように実行権限を付与することが可能です。
ターミナル(権限の付与①)
$ chmod +x test.sh
$ ls -l test.sh
-rwxr-xr-x@ 1 matsunagatakahisa staff 23 3 9 12:55 test.sh
- ちなみに以下のような形でも権限を付与することができます。
- ①のコマンドで権限を付与した時との違いが分かるでしょうか?
① -rwxr-xr-x@ → ② -rwxr--r--@
②ではxの数が減っていることがみて取れます。これは権限付与対象をファイル作成者に限定したからです。
-rwxr-xr-x
の2~4 文字目がファイル所有者への権限、5~7文字目がグループへの権限、8~10文字目がその他への権限を表しています。また、744という数字は左から順にファイル所有者への権限、グループへの権限、その他への権限を指定する箇所となっています。そして1~7の数字はそれぞれ、どのような権限を与えるかを表します。
ターミナル(権限の付与②)
$ chmod 744 test.sh
$ ls -l test.sh
-rwxr--r--@ 1 matsunagatakahisa staff 23 3 9 12:55 test.sh
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
--- | --x | -w- | -wx | r-- | r-x | rw- | rwx |
###作成したファイルの実行
コマンドを実行するディレクトリ内にもし作成したシェルスクリプトのファイルが存在すれば
以下を実行することでスクリプトが実行されます。もし、現在いるディレクトリ以外でもこのスクリプトを実行する際はpathを設定する必要があります。
ターミナル(ファイルの実行)
$ ./test.sh
###参考
https://shellscript.sunone.me/tutorial.html
https://eng-entrance.com/linux-permission-basic