Я знаю, !!
что команды запускаются повторно, но что именно произойдет, если я повторно запущу команду, содержащую переменную?
решение1
Ну что ж, давайте попробуем:
$ foo=bar
$ echo $foo
bar
$ foo=qux
$ !-2
echo $foo
qux
$ history
...
219 foo=bar
220 echo $foo
221 foo=qux
222 echo $foo
223 history
Итак, похоже, что команда добавлена в историю.допроисходит переменное расширение.
решение2
Кажется, что некоторые пробы и ошибки могут оказаться полезными и дать вам результат очень быстро. Прежде чем задать вопрос, хорошо бы попробовать все это самому. В результате вы сможете задавать информированные и подробные вопросы :)
Поскольку, судя по всему, вы новичок в этом деле, возможно, следующее будет вам полезно?
$ history -c
$ FOOD="Bananas"
$ echo $FOOD
Bananas
$ history
137 FOOD="Bananas"
138 echo $FOOD
139 history
$ !138
echo $FOOD
Bananas
Как видите, history
команда сработала так, как и ожидалось. Выполнив 138, мы выполнили точно такую же команду, как и в первый раз, когда мы ее запустили.
Совет от профессионала: используйте man
команду, чтобы узнать больше о команде, которая вас интересует. Пример:
man history
и введите команду Qвыхода, когда закончите.
Ваше здоровье!