_test=`shasum -a 256 my "file here.txt" | awk -F' ' '{print $1}'`
Isso funciona como esperado. Mas o TOC em mim quer usar algo como
_test="${my-command-here}"
Mas por causa das aspas simples na seção awk, estou recebendo um erro de substituição ruim.
$ _test="${shasum -a 256 "my file here.txt" | awk -F' ' '{print $1}'}"
zsh: bad substitution
$ _test=${shasum -a 256 \"my file here.txt\" | awk -F\' \' \'{print $1}\'}
zsh: bad substitution
Alguma ideia de como fazer funcionar? Obrigado
O que você está fazendo
${...}
é chamado de Expansão de Parâmetro . Isso expandirá os parâmetros - no seu caso, um parâmetro chamadoshasum -a 256 "my file here.txt" | awk -F' ' '{print $1}'
, mas esse não é um nome de parâmetro válido, conforme descrito em Parâmetros :O que você realmente quer é executar tudo
${...}
e para isso você precisa de Command Substitution , que usa parênteses em vez de chaves: