O que -x
significa aqui:
if [ -x /etc/rc.local ] then
Como eu pude descobrir esta página de manual if
?
command-line
bash
taymindis Woon
fonte
fonte
help if
?Respostas:
Nas
man bash
páginas (especialmente na seção EXPRESSÕES CONDICIONAIS):fonte
test
no bash, não está invocando otest
binário. Em vez disso, você está invocando otest
built-in do bash , que possui documentação emhelp test
, entre outros lugares.man test
pode ser enganoso em alguns casos por esse motivo.if
própria é uma palavra-chave shell, para que você possa encontrar informações sobre elahelp if
.if
ele próprio ramifica apenas se o próximo comando retorna verdadeiro (0) ou falso (não zero). O que você realmente quer, porém, éman [
ouman test
, para onde[
serve um aliastest
. Essa instrução está realmente em execuçãotest -x /etc/rc.local
, que testa para verificar se esse arquivo existe e é executável (ou tem permissão de pesquisa).fonte
man [
funciona tambémif
não é um shell embutido, é uma palavra-chave shell. Execute este comandotype if
para verificar isso.De
info test
:A permissão de execução é necessária em um diretório para poder entrar nele (ou seja, para tornar um diretório seu diretório de trabalho atual).
A execução é necessária em um diretório para acessar as informações de "inode" dos arquivos contidos. Você precisa disso para procurar um diretório para ler os inodes dos arquivos. Por esse motivo, a permissão de execução em um diretório geralmente é chamada de permissão de pesquisa.
fonte