Você precisa de dois sinais de igual:
[[ $a == signature.pl ]] && echo equal
na minha máquina linux red-hat 5.1 - no arquivo ppp - eu tenho apenas a string signature.pl !!!
Eu configurei o arquivo ppp em $ a param E compare $ a com signature.pl
Mas como todos veem aqui isso não é igual - por quê? ou se eu tiver espaço vazio? Como resolver isso?
# more /var/tmp/ppp
signature.pl
# a='cat /var/tmp/ppp'
# echo $a
signature.pl
# [[ $a = signature.pl ]] && echo equal
ou
# [[ $a == signature.pl ]] && echo equal
exemplo de diff que funciona! - do shell ksh (LINUX RED-HAT 5.1)
[u@h w]# echo signature.sh > file
[u@h w]# cat file
signature.sh
[u@h w]# a='cat file'
[u@h w]# echo $a
signature.sh
[u@h w]# [[ $a = signature.sh ]] && echo eq
its print "eq"
Tags bash ksh linux shell-scripting