Сокращение, что я пытаюсь сделать, чтобы простой пример:Как динамически вычислять значение переменной и использовать ее в команде?
env temp=`pwd` echo "$temp"
Я получаю сообщение:
temp: Undefined variable.
Как заставить его работать (в раковине-агностик способом)? Я ожидаю, что будет напечатан результат pwd
.
Мои фактические требования вместо сложного выражения вместо pwd
, являются сценарием вместо «echo
» и переменной $temp
в качестве аргумента для этого скрипта.
Кроме того, я хочу установить эту переменную только для этой единственной команды, а не для всей оболочки (или любых последующих подоболочек).
Зачем вам это нужно? Оболочка расширяет '$ temp' до запуска команды, поэтому содержимое среды не имеет значения. – chepner
@ jonathan-leffler Я думаю, что это обман части 'bash', но не части' csh'. – davejagoda
Правильный ответ на часть 'csh':« Не используйте морскую раковину, оставьте морские раковины на берегу моря (где, если повезет, прилив смывает их »). Непонятно, почему код пытается передать 'temp' как аргумент и переменную среды. Если это сложная команда вместо 'pwd' и скрипта вместо' echo', все это должно быть завершено в скрипте, а скрипт должен быть сценарием оболочки Bourne/Korn/POSIX/Bash, а не скриптом оболочки C , –