これはなに

Shell scriptが実行できないときに確認することのメモ。
確認することリスト

実行権限を確認する

実行権限が付与されているか確認する。
ls -l script.sh実行権限がある場合は、xが付与されている。
$ ls -l script.sh
-rwxr-xr-x 1 user user 0 Mar 10 11:25 script.sh実行権限がない場合は、chmodコマンドで実行権限を付与する。
chmod +x script.sh所有者を確認する

実行権限に対し、所有者が正しいか確認する。
ls -l script.sh所有者が正しくない場合は、chownコマンドで所有者を変更する。
chown user script.shシバンを確認する

シバンが正しく設定されているか確認する。
head -n 1 script.shシバンが正しく設定されていない場合は、正しいシバンを設定する。
#!/bin/bashファイルの改行コードを確認する

ファイルの改行コードが正しいか確認する。
file script.shLinuxの改行コードはLF、Windowsの改行コードはCRLFである。よって、Windowsで作成したファイルをWSLで実行する場合はとくに注意が必要で、改行コードを変換する必要がある。
改行コードは、dos2unixコマンドで変換できる。VS Codeの場合は、ファイルを開いて、右下の改行コードをクリックして変換もできる。
dos2unix script.shファイルの存在を確認する

ファイルが存在するか確認する。
ls script.shファイルが存在しない場合は、ファイルを作成したり、移動したりする。
PATHを確認する

シェルスクリプトがコマンドとして認識されない場合は、PATHにスクリプトのディレクトリが含まれているか確認する。
echo $PATHPATHにスクリプトのディレクトリが含まれていない場合は、exportコマンドでPATHにスクリプトのディレクトリを追加する。
export PATH=$PATH:/path/to/script