Seu problema está aqui:
$ attachmenttype='file $attachment | cut -d\ -f2'
$ echo $attachmenttype
file $attachment | cut -d\ -f2
Neste comando você apenas armazena a string file $attachment | cut -d\ -f2
em attachmenttype
e quando você faz o check-in se você receber um resultado inválido. Você precisa usar o bash Command Substitution $(...)
para evitar resultados errados.
E uma coisa sobre cut -d\ -f2
que alguém lhe diz que não está correto: Isso está strongmente correto porque este comando já usa o espaço
como delimitador de campo porque você acabou de escapar com \
. veja espaços duplos entre -d\ -f2
.
Errado:
$ read attachment
/home/KasiyA/file.txt
$ attachmenttype='file $attachment | cut -d\ -f2'
$ if [[ $attachmenttype = "ASCII" ]]; then echo "valid" ;else echo "invalid"; fi
invalid
Correto:
$ read attachment
/home/KasiyA/file.txt
$ attachmenttype=$(file $attachment | cut -d\ -f2)
$ if [[ $attachmenttype = "ASCII" ]]; then echo "valid" ;else echo "invalid"; fi
valid