我有一个脚本:
#!/bin/bash echo "$(dirname $(readlink -e $1))/$(basename $1)"
它位于: /home/myuser/bin/abspath.sh ,它具有执行权限。
如果我运行echo $PATH我得到以下内容: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
我希望能够从任何目录调用abspath <some_path_here>并调用我的脚本。 我正在使用bash,我做错了什么?
你想inputabspath ,但程序名为abspath.sh 。 问题不在于它是否在PATH中,而是因为你根本不使用它的名字来调用它。
你有两个select:
abspath.sh改为abspath.sh 。 abspath 。 这段代码足够小,我将它作为一个shell函数进行编码:
abspath() { echo "$(dirname "$(readlink -e "$1")")/$(basename "$1")" }
是的,你确实需要所有的报价。
通过在.bashrc文件中添加您的命令来设置一个别名。
alias abspath='sh /home/myuser/bin/abspath.sh'
并且不要忘记来源文件。
我会重命名你的bash脚本abspath然后将其移动到bin目录。 那么你将无法从任何地方拨打abspath
第三个选项是创build一个名为abspath的别名,指向您的abspath.sh脚本。