De man bash
no parágrafo de expressões condicionais:
-x file
True if file exists and is executable.
Então, você pode usar:
[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
Como você pode verificar se um comando pode ser executável ou não no Linux?
Exemplo:
xeyes
De man bash
no parágrafo de expressões condicionais:
-x file
True if file exists and is executable.
Então, você pode usar:
[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
Se você não conhece um caminho para o comando, você pode usar which
para verificar onde está (é claro, se você o tiver em $ PATH). Se você conhece um caminho para o arquivo de comando, use if -x /path/to/command
statement.
Se você souber a localização de onde o comando binary é mantido, basta fazer um ls -l
. Se você não souber o local, primeiro localize o local usando o comando which
$ which xeyes
/usr/bin/xeyes
Se o comando tiver permissão de execução ( x
) definido, ele será executável.
$ 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
O -x <filename>
, na verdade, verifica se o arquivo tem permissão de execução definida
Explicação:
A primeira coluna de ls -l mostra a permissão no arquivo.
-rwxrwxr-x
-rwxrwxr-x
type of file
( -
é para arquivo regular) owner
permission ( rwx
: ler, gravar e executar) group
permission ( rwx
: ler, gravar e executar) other
permission ( r-x
: permissão de leitura e execução) Para mais informações sobre permissões de arquivos, leia: link
Tags bash executable linux command