我想在终端的当前 shell 中执行来自文件(即脚本)的命令。
例如:我有一个文件ch_dir
包含以下内容:
#!/bin/bash
cd /usr
现在,如果我通常按如下方式执行文件,那么它会执行以下命令不同的外壳:
pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$
这里cd /user
是在不同的shell中执行的。
但我想在当前 shell 中执行。我该怎么做?
笔记:这里cd
仅用于解释。问题的目的是执行任何当前 shell 中的命令
答案1
使用内置命令source
(从help -m source
):
source—从当前 shell 中的文件执行命令。
问题中提到的执行示例:
pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$
您可以在这里cd /usr
看到在当前shell中执行因此当前 shell 的目录发生了变化!
希望这将有助于在当前 shell 中执行从文件输入的命令。
答案2
只需像这样运行脚本.
:
pandya@pandya-desktop:~$ . ./ch_dir