Вы попробовали $PROMPT_COMMAND
? Это является наиболее часто используемым для установки xterm заголовка для показа CWD, например. Это выполняется, когда подсказку показывают. Может быть возможно установить Вашу переменную с этим. Первый недостаток был бы то, что Ваша команда будет выполняться каждый раз, Вы нажимаете Enter в оболочке. Второе было бы то, что, если не активны на Вашем терминале в течение долгого времени и дневных передачах, он не будет автоматически установлен. Это будет установлено, после затем вводят в терминал.
# export PROMPT_COMMAND="export today=\`date\`"
# echo $today
Tue Jun 26 01:07:19 EEST 2012
# echo $today
Tue Jun 26 01:07:21 EEST 2012
# echo $today
Tue Jun 26 01:07:22 EEST 2012
perl -pe 's|(?<=0x)[0-9a-f]{1,8}|`./convAddrs $&`|gei'
perl -pe
: как sed
: обработайте вход одна строка за один раз в $_
, оцените жемчуг [e] xpression, передал -e
для каждой строки и [p] rint измененный $_
для каждого.s|X|Y|gei
: замена Y
для X
в $_
([g] lobally, случай [я] nsensitively и обработка Y
как жемчуг [e] xpression вместо основной строки).(?<=0x)
: оглянитесь для 0x
.[0-9a-f]{1,8}
: один к 8 шестнадцатеричным цифрам, как можно больше`./convAddrs $&`
: замена выводом той командной строки оболочки, где $&
заменяется подобранной частью.Это может быть или не быть правдой, что sed
не может выполнять команды. Это не верно для GNU sed
:
sed -Ee 's/(0[Xx])([0-9A-Za-z]{1,8})/\1\n ./convAddrs \2\n#/g' \
-eh -e 's/\n.//gp;g;s/^/#/e' <"$1"
Мне неясно, что еще может быть в вашем <$1
вводе, и поэтому я стараюсь #
закомментировать все, что не является командой \2
в пространстве шаблона. Когда вы используете флаг GNU e
xecute для s///
ubstitution, он передает все полученное пространство шаблона в $SHELL -c
в качестве второго аргумента, а затем заменяет все пространство шаблона тем, что записывается в stdout этого $SHELL
. Итак, выше я вывел сначала все результаты, которые были до этого, а затем результаты передачи командной строки оболочке.
/
здесь, так как это использовало в сменной детали. Исправленный. – Stéphane Chazelas 31.07.2013, 20:26