Ваша оболочка не остановилась, прогресс, который вы отправили в фоновый режим, остановился (процесс iex
). Если вы нажмете «Enter», вы получите ответное приглашение оболочки.
В этом случае используйтеcat
:
var=$( cat somefile 2>/dev/null )
или сначала проверьте наличие файла:
if [ -f somefile ]; then
var=$(<somefile)
fi
Во избежание состояния гонки в последнем примере (файл теоретически может исчезнуть между проверкой и чтением):
if cp somefile myname 2>/dev/null; then
var=$(<myname)
rm -f myname
fi
Следующее не будет работать:
var=$(<somefile) 2>/dev/null
var=$(<somefile 2>/dev/null)
Вы можете использовать:
{ var=$(<somefile); } 2> /dev/null