Условно-экспортная переменная командной строки

Если я убегу

export COMMAND=nonexistentcommand && which $COMMAND >/dev/null || \ (echo "download filewithcommand.sh" && export COMMAND=./filewithcommand.sh) echo "command: $COMMAND" 

я получил

 download filewithcommand.sh command: nonexistentcommand 

Но я думаю, что это должно быть

 download filewithcommand.sh command: ./filewithcommand. 

Что случилось с этим предложением?

One Solution collect form web for “Условно-экспортная переменная командной строки”

COMMAND установлен в nonexistentcommand и это результат, который вы получаете. Нормальный.

Вы устанавливаете COMMAND в какое-то другое значение, но оно находится в подоболочке (заключено в круглые скобки), поэтому оно не влияет на среду родительской оболочки. Вы хотели использовать { braces } (который не вилка подоболочки) вместо ( круглые скобки ) ?

  • Установка IFS для сценария bash
  • Последняя неудачная команда в bash
  • Почему $ SHELL не изменяется при запуске новой оболочки?
  • Как вы делаете переменную DISPLAY неопределенной?
  • Отменить переменную среды для одной команды
  • Можно ли получить внешние переменные среды для измененной среды?
  • Где задана переменная окружения TERM по умолчанию?
  • Удалите папку с тем же именем, что и переменная среды
  • Ограничения / etc / profile в Gnome
  • Как запустить мою программу C из любой точки системы (Ubuntu 10.10)?
  • Как установить переменную среды в командной строке и отобразить ее в командах?
  • Linux и Unix - лучшая ОС в мире.