O problema ocorre em cut -d\ -f2
. Mude para cut -d\ -f2
.
Para cut
, os argumentos são assim:
# bash: args(){ for i; do printf '%q \\n' "$i"; done; }
# args cut -d\ -f2
cut \
-d\ -f2 \
E aqui está o problema. \
escapou do espaço para um literal de espaço em vez de um delimitador entre argumentos em seu shell, e você não adicionou um espaço extra para que toda a parte -d\ -f2
apareça como um argumento. Você deve adicionar um espaço extra, então -d\
e -f2
aparecem como dois argumentos.
Para evitar confusão, muitas pessoas usam citações como -d' '
.
P.S .: Em vez de usar o arquivo e fazer tudo como ASCII, prefiro usar
if file "$attachment2" | grep -q text$; then
# is text
else
# file doesn't think it's text
fi