
Linuxでコマンドが実行可能かどうかを確認する方法
例:
xeyes
答え1
man bash
条件式段落から:
-xファイル
ファイルが存在し、実行可能であれば真です。
したがって、次のものを使用できます。
[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
答え2
コマンドバイナリがどこに保存されているかを知っている場合は、単に実行してくださいls -l
。場所がわからない場合は、まずwhich
コマンドを使用して場所を見つけます。
$ which xeyes
/usr/bin/xeyes
コマンドに実行権限(x
)が設定されている場合は、コマンドを実行できます。
$ ls -l /usr/bin/
-rw-rw-r-- 1 arushirai arushirai 0 May 23 11:58 123
-rwxrwxr-x 1 arushirai arushirai 0 May 23 11:58 xeyes
実際に-x <filename>
ファイルに実行権限が設定されていることを確認してください。
説明する:
ls -l の最初の列にはファイルの権限が表示されます。
-rwxrwxr-x
- r は読み取り権限です
- wは書き込み権限です
- x は実行権限です。
-rwxrwxr-x
- ビット1:Tell
type of file
(-
一般ファイルの場合) - 次の3桁:
owner
権限(rwx
:読み取り、書き込み、実行) - 次の3桁:
group
権限(rwx
:読み取り、書き込み、実行) - 次の3桁:
other
権限(r-x
:読み取りと実行権限)
ファイル権限の詳細については、次を参照してください。https://wiki.archlinux.org/index.php/File_permissions_and_attributes
答え3
コマンドのパスがわからない場合は、それを使用してwhich
その場所を確認できます(もちろん$ PATHにある場合)。コマンドファイルのパスがわかっている場合は、if -x /path/to/command
ステートメントを使用してください。