Ion*_*zău 5 linux shell bash directory
我在/usr/bin. 让我们称之为hello。
它包含以下内容:
echo "I am located in $PWD"
echo "I am called from this directory: ???"
Run Code Online (Sandbox Code Playgroud)
hello从/home/Documents我期望以下输出运行:
echo "I am located in $PWD"
echo "I am called from this directory: ???"
Run Code Online (Sandbox Code Playgroud)
如何获取运行脚本的目录路径?
无法评论另一个答案,所以我在这里发帖。如上所述,dirname只是读取$0并获取目录名称,因此如果您调用类似的东西,../../directory/something.sh它不会解析这些点,而只会返回../../directory. 您可以使用一个非常智能的命令,而不是使用cd和使用子shell 扩展pwd,它不仅可以readlink解析点目录,还可以解析所有符号链接。因此我建议
echo "I am located at $(readlink -e -- "$0")"
Run Code Online (Sandbox Code Playgroud)
您可以使用另一个dirname来获取目录而不是文件。
$PWD是包含当前目录的变量。$(dirname -- "$0")可以使用shell脚本来获取目录。
脚本的内容将如下所示:
echo "I am located in $(dirname -- "$0")"
echo "I am called from this directory: $PWD"
Run Code Online (Sandbox Code Playgroud)