Мне нужно было изменить настройку в VirtualBox
. Мне нужно было изменить параметр Network Attached с Bridged Network на NAT, и после перезагрузки я запустил ifconfig -a
, и он в конце концов вытащил IP-адрес!
Проблема в том, что когда Bash начинается неинтеградивно, то он не читает ~ / .bashrc
.
Таким образом, вы должны прочитать H ()
из скрипта.
Если вы хотите использовать псевдонимы в сценарии, вы должны
Включить использование псевдонимов в скрипте с помощью ShopT -S Expand_aliases
Определите псевдоним в скрипте.
Альтернатива псевдонима определяет функцию оболочки (которая работает то же самое в интерактивных и неинтерактивных оболочках):
foo () {
bar "$@"
}
, но невозможно взять на себя значения псевдонима или определения функций из беговой оболочки в скрипт, как Оболочка работает скрипт, повторно инициализируется.
Решение, которое мне помогло, заключалось в том, чтобы заставить скрипт запускаться в интерактивном режиме с заголовком #! / Bin / bash -i
.
Расширенное руководство по сценариям на Bash предупреждает о странных последствиях:
Имейте в виду, что это может привести к нестабильному поведению сценария или отображать сообщения об ошибках , даже если ошибки нет.
Однако я ничего подобного не наблюдал.