Я, как было известно, иногда использовал ex
(vi
в не визуальный режим, нет ed
) сделать маленький выпуск при удаленном входе через высокую строку задержки (и я поместил затем telnet в режим строки). Больший выпуск и я используем emacs
локально. Отклонение telnet в пользу ssh даже для внутренней части, удаленный сеанс интранет был разумом, я прекратил делать это.
Давным-давно, я использовал строчный редактор на этом виде терминалов; это не было ed
ни ex
.
Необходимо использовать выражение оценки
#!/bin/bash
VER_URXVT='urxvt -help 2>&1 | head -n 2'
echo $VER_URXVT
eval $VER_URXVT
От оценки страницы справочника
The args are read and concatenated together into a single com-
mand. This command is then read and executed by the shell, and
its exit status is returned as the value of eval. If there are
no args, or only null arguments, eval returns 0.
Использование:
VER_URXVT=`urxvt -help 2>&1 | head -n 2`
который совпадает с:
VER_URXVT=$(urxvt -help 2>&1 | head -n 2)
получить первые две строки urxvt
справка в VER_URXVT
.
Если Вы хотите оценить команду в переменной оболочки, необходимо использовать eval
:
VER_URXVT='urxvt -help 2>&1 | head -n 2'
eval $VER_URXVT
Я продолжаю думать, что функции лучше, чем eval
переменные uing
#!/bin/bash
version() { uname -a;}
wm() { head -n1 <(openbox --version);}
for f in $(compgen -A function)
do declare -f $f | sed '1,2d; $d'
$f
done
никогда не использовать eval
если Вы действительно не знаете то, что будет eval
редактор.
вместо этого используйте функцию.
#!/bin/bash
ver_urxvt() { urxvt -help 2>&1 | head -n 2;}
declare -f ver_urxvt | sed '1,2d; $d'
ver_urxvt
но это глупо, поскольку это - пустая трата времени для печати той информации.
если Вы хотите отладить свое использование сценария -x
опция set
встроенный
eval
, Я не знаю, как это отличается от обратных галочек /$()
, но если Вы будете хотеть объяснить, почему это считают небезопасным, уверенным, я изменю его.
– Emanuel Berg
23.12.2012, 01:35
eval
решение, 2...., который я благодарил, если Вы читаете комментарий выше, 3. модераторы часто удаляют поздравления, таким образом, я прекратил использовать их, хотя мне не удается видеть, как это - большая проблема и 4. Вы на самом деле ожидаете, что я поблагодарю Вас после вызова моего глупого вопроса, и мое желание распечатать информацию "пустая трата времени"?
– Emanuel Berg
23.12.2012, 02:26