Может ли кто-нибудь помочь объяснить следующее:
Если я наберу:
a=`ls -l`
Затем вывод команды ls сохраняется в переменной a
но если я попытаюсь:
a=`sh ./somefile`
Результат выводится в оболочку (stdout
), а не в переменную a
То, что я ожидал, было результатом операции оболочки, пытающейся выполнить скрипт 'somefile
' для сохранения в переменной.
Пожалуйста, укажите, что не так с моим пониманием и возможный способ сделать это.
Спасибо.
EDIT:
Просто чтобы уточнить, сценарий 'somefile
' может существовать или не существовать. Если он существует, то я хочу, чтобы выходные данные скрипта были сохранены в 'a
'. Если нет, я хочу, чтобы сообщение об ошибке «нет такого файла или каталога» сохранялось в «a
»