Você precisa de echo
para passar a variável abc
para STDOUT, para que awk
possa usá-la como STDIN. Embora você pudesse escapar neste caso, mas sempre cite as variáveis (e substituição de comando), a menos que você tenha uma boa razão para não (por exemplo, você quer que a expansão do nome do caminho ocorra):
$ abc="1 hello world"; L="$(echo "$abc" | awk '{print }')"; echo "$L"
1
$ abc="mp4 hello world"; L="$(echo "$abc" | awk '{print }')"; echo "$L"
mp4
Você também pode usar as strings aqui:
$ abc="1 hello world"; L="$(awk '{print }' <<<"$abc")"; echo "$L"
1
$ abc="mp4 hello world"; L="$(awk '{print }' <<<"$abc")"; echo "$L"
mp4