从当前shell中的文件执行命令

Pan*_*dya 8 command-line scripts execute-command

我想在终端的当前 shell 中从文件(这是脚本)执行命令。

示例:我的文件ch_dir包含以下内容:

#!/bin/bash
cd /usr
Run Code Online (Sandbox Code Playgroud)

现在,如果我通常如下执行文件,那么它会在不同的 shell 中执行命令:

pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$
Run Code Online (Sandbox Code Playgroud)

这里cd /user是在不同的shell中执行的。

但我想在 Current shell 中执行。我怎么做?

注:此处cd仅用于说明。问题的目的是在当前 shell 中执行任何命令

Pan*_*dya 15

使用内置命令source(来自help -m source):

source - 从当前 shell 中的文件执行命令。

问题中提到的执行示例:

pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$ 
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到cd /usr在当前的shell执行,因此当前的shell的目录变了!

希望这将有助于在当前 shell 中执行来自文件的命令输入。

  • `source` 的常见简写是 `.`,如@mehdy 的回答。 (4认同)

小智 5

只需.像这样运行脚本:

pandya@pandya-desktop:~$ . ./ch_dir
Run Code Online (Sandbox Code Playgroud)