从任何(非特定)目录运行shell脚本

时间:2016-03-27 17:21:06

标签: linux bash shell shebang

所以我已经在其他几次发现了这个问题,但我并不完全理解答案。

所以我在一个巨大的服务器上运行多人,所以目录有点不稳定,我有点问题,弄清楚我应该做什么。

所以我想创建自己的脚本

做了以下

$ mkdir myscripts
$ cd myscripts
$ vim dirstatus.sh

在dirstatus.sh中我刚写了一个简单的脚本,我更感兴趣的是让脚本可以从任何目录中执行。

所以

#!/usr/bin/env sh
# My own script - Experimenting with Shell
# Setting path export
export PATH=$PATH:~/bin/myscripts
printf "The current directory is $(pwd) \n
Path of this script is $(PATH)"

之后我做了

$ chmod +x dirstatus.sh

当我在myscripts目录中执行./dirstatus.sh时,它可以正常工作

然而,当我在任何其他目录中执行$ dirstatus时,甚至在myscripts目录中也是如此

我收到以下错误

~ksh: dirstat: command not found

任何解决方案?

1 个答案:

答案 0 :(得分:1)

问题是包含dirstatus.sh文件的myscripts目录不在终端会话的路径中。假设您在家中创建了myscripts目录,则可以执行以下操作:

PATH=~/myscripts:$PATH

要使此更改适用于所有新的终端会话,您可以将以上内容添加到登录时加载的〜/ .profile或〜/ .bash_profile文件中。