Описание тега word-processor
Ваш вопрос не кристально чистый, но ваше противопоставление предложений
Псевдонимы расширяются, когда команда читать, не тогда, когда он выполняется.
и
В bash всегда читает по крайней мере одну полную строку ввода перед выполнение любой из команд в этой строке.
говорит о том, что фокус вашего вопроса-это псевдоним расширения. (Я говорю “предположить”, потому что, помимо ручного Баш выдержка, ваш вопрос не упомянуть псевдонимы на всех.)
Оригинальная версия ваш вопрос
Как я могу показать, что bash всегда читает по крайней мере одну полную строку ввода перед выполнением любой из команд в этой строке?
Единственный реальный способ сделать это - использовать какое-то средство отладки мониторинга / / трассировки для изучения внутреннего состояния оболочки. Это несколько непрактично. PawkyPenguin ответ показывает подход чтобы сделать некое сомнительное аргумент в поддержку того, что в инструкции написано. Вот вариант их ответа, что (ИМО) - это немного яснее:
$ Alias Алиас=дата $ Alias Алиас="Общ -ЛД"; Алиас 2017 ПТН, 04 августа, 3:33:33 утра
Мы можем утверждать, что
снаряд должен был прочитать (второй) в полном объеме
прежде чем он начал выполнять его
потому что, когда он выполнил Алиас
, он выполнил его как дату
.
К тому времени Алиас
псевдоним был казнен,
он был пересмотрен, чтобы быть Общ -ЛД
.
Следовательно, снаряд должен был расширить алиас
на дату
прежде чем его казнили
Alias Алиас="Общ -ЛД"
команды, поэтому он должен прочитать полную строку ввода перед выполнением любой из команд в этой строке.
Ваш пересмотренный вопрос,
Как я могу показать результаты после Баш читает одну строку ввода, но перед выполнением любой из команд в этой строке?
делает немного больше смысла в этом контексте. Я предполагаю, что вы хотите видеть командную строку с псевдонимами расширен перед выполнением любой команды на этой линии; т. е. видеть результаты псевдоним расширения. Я думаю, вы хотите увидеть что-то вроде
Alias Алиас="Общ -ЛД"; дата
Насколько я знаю, нет никакого пути чтобы получить это выход
— полное соответствие с псевдонимы расширяются.
Но содержит
(-х
) вариант не приближается.
$ комплект -х $ Alias Алиас=дата + Alias Алиас=дата $ Alias Алиас="Общ -ЛД"; Алиас + псевдоним 'Алиас=Общ -ЛД' + дата ← расширение псевдоним 2017 ПТН, 04 августа, 3:33:42 утра
Конечно, это выходы каждой расширять команду только до его исполнения, поэтому результаты псевдоним расширения совмещены с выходом из команды. Кроме того, это показывает все дополнения:
$ животное=кошка + животное=кошка $ Echo Привет; Эхо мира; Алиас "$животных" Р* + Echo Привет Привет + Эхо мира мир + ЛС-ЛД кот ридми ← расширение псевдоним ЛС: не кот доступа: нет такого файла или каталога -RW-р-р-- 2 имя_пользователя mygroupname 489 22 февраля 2015 ридми
Мы не видим ЛС-ЛД "$животных" Р*
;
мы видим его только после того, как переменная расширения и пути (Глоб) расширение.
Не “играть” с трубопроводами:
$ Alias Алиас=дата + Alias Алиас=дата $ Алиас | ОД -ЦБ + дата ← расширение псевдоним + ОД -ЦБ 0000000 Ф Р I , а U г 0 4 , 2 0 1 106 162 151 054 040 101 165 147 040 060 064 054 040 062 060 061 0000020 7 9 : 4 2 : 1 7 Р М \П 067 040 040 071 072 064 062 072 061 067 040 120 115 012 0000036
где вывод трассировки показывает нам дату
и ОД -ЦБ
на две отдельные линии.
(Вам нужно смотреть в оригинале командной строки
чтобы выяснить, что он делал дата | ОД -КБ
,
если это не очевидно из выходных.)