выполнение ha sh не в subshell в скрипте bash - PullRequest
0 голосов
/ 01 марта 2020

Я пишу сценарий для создания альтернативного uname с другим выпуском ядра, существующим на компьютере.

слышит фрагмент из скрипта:

dir=$(mktemp -d --tmpdir uname.XXXXXXXX)      
cat > "$dir/latest_rhel6_release" <<EOF
2.6.32-733.27.1.el6.x86_64
EOF

cat > "$dir/uname" <<EOF
#!/bin/bash
cat "$dir/latest_rhel6_release"
EOF

chmod +x "$dir/uname"
hash -p "$dir/uname" uname"

код работает, кроме последняя строка:

hash -p "$dir/uname" uname"

если я выполню команду:

hash -p "$dir/uname" uname"

после запуска скрипта, тогда, если я смогу запустить "uname -r"

Я получу требуемый результат:

2.6.32-754.27.1.el6.x86_64

вопрос в том, как я могу запустить команду ha sh из скрипта, но не как подоболочку и не повлиять на родительскую оболочку, из которой я запускаю скрипт

1 Ответ

1 голос
/ 01 марта 2020

Введите сценарий или укажите его. Предположим, myscript - это имя вашего сценария.

source ./myscript

или

. ./myscript

и

hash -p "$dir/uname" uname

См. Почему я не могу установить переменные в моем сценарии для родительской оболочки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...