Como posso descobrir qual versão do shell (bash e / ou ksh) começar a suportar ==

2

tanto [[string1 == string2]] quanto [[string1 = string2]] significa igual. Mas algum outro cara me disse que sua máquina não suporta ==. A mensagem de erro é: erro de sintaxe: '==' inesperado.

Parece que eles usam UNIX antigo com o shell korn e estou usando o REHL5.2. Como não consigo acessar suas máquinas, como descobrir qual versão começa a suportar "=="?

Obrigado

    
por valpa 06.01.2012 / 05:21

1 resposta

2

Você pode ver o valor de $SHELL e ver se ele está definido para o executável do shell. Você poderia então testar e ramificar o valor disso, ou a falta dele; Eu não sei se isso será definido em shells mais antigos.

Se você não precisa dos recursos avançados de [[ , use [ . Esta página explica as diferenças em detalhes. Veja também esta questão relacionada .

Se você for comparar somente strings com == , use a sintaxe POSIX para a maior compatibilidade: [ string1 = string2 ] , que usa um único sinal de igual.

    
por 10.01.2012 / 03:44

Tags