A condição de teste [
é um programa que reside em distribuições baseadas no Debian em /usr/bin/[
. Gostaria de saber se o outro testador de condição [[
também é um programa?
A razão pela qual estou perguntando: concedi sudo
direitos a um determinado usuário para deixá-lo acionar um script de shell. Por motivos de segurança, estou adicionando o caminho completo para cada programa ( echo
to /bin/echo
e [
to /usr/bin/[
) usado nesse script, para que o usuário não possa alterar o dele PATH
para usar seus próprios programas. Agora eu estou querendo saber se eu tenho que mudar [[
, também.
man bash
So
[[
é uma palavra reservada e, portanto, não pode ser um comando externo. Pode haver tal arquivo, porém, mas teria que ser chamado com o caminho completo ou com aspas.E mesmo que houvesse um comando externo, ele não funcionaria da mesma maneira porque
[[
, como parte da gramática do shell, as regras de análise são alteradas até o próximo]]
. Comandos externos não podem fazer isso.