На этот вопрос уже есть ответ здесь:
Я хочу выполнить команду из файла (который является сценарием) в текущей оболочке в терминале.
Пример: у меня есть файл ch_dir
, содержащий следующее:
#!/bin/bash
cd /usr
Теперь, если я выполняю файл обычно следующим образом, он выполняет команды в другой оболочке :
pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$
Здесь cd / user
выполняется в другой оболочке.
Но я хочу выполнить в текущей оболочке. Как мне это сделать?
Примечание: Здесь cd
используется только для объяснения. Задача вопроса - выполнить любую команду в текущей оболочке
Используйте встроенную команду source
(от help -m source
):
источник - Выполняет команды из файла в текущей оболочке.
Пример выполнения, упомянутого рассматриваемый:
pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$
Здесь Вы видите cd /usr
выполняется в текущей оболочке и следовательно каталоге текущей измененной оболочки!
Надежда это поможет выполнить ввод команд из файла в текущей оболочке.
Просто выполните сценарий с .
как это:
pandya@pandya-desktop:~$ . ./ch_dir