执行当前目录中的shell脚本,而不是$ PATH中的脚本

时间:2014-03-18 15:30:54

标签: linux bash shell

我已将/ usr / share / totalscripts的.bash_profile文件中的路径定义为:

PATH="${PATH}:/usr/share/totalscripts"
export PATH 

我所有的shell脚本程序都存在 - / usr / share / totalscripts

具体来说,我需要在当前目录中执行脚本,而不是我的$ PATH环境变量中可用的脚本。也就是说,在PATH中找到特定的脚本而不是任何与之匹配的脚本。

例如,不调用script1.sh(它将对PATH中找到的任何script1.sh执行)可能是有意义的,而是调用./script1.sh(它只会执行脚本)在本地目录中找到)。

这是因为我在/usr/share/totalscripts/script1.sh/home/script1.sh(同名)下有相同的脚本

1 个答案:

答案 0 :(得分:0)

如果您正在使用脚本,那么您可以在开头定义环境变量,例如:

MY_VAR="/my/path/to/scripts"

然后使用以下命令从该脚本中调用脚本:

${MY_VAR}/my_script.sh

与使用完整路径运行脚本相同。

我希望这有帮助!


编辑1: - 如果要运行注释中提到的特定脚本,在特定目录下,可以尝试将目录更改为包含该文件的目录,然后运行类似{{1}的脚本}。

./script1.sh

编辑2: - 也许您可以为cd /path/containing/your/scripts/ ./script1.sh 创建一个包装器,在其中放置以下if-block以检查脚本是否在当前目录下。

script1.sh