bash-获取从不同目录运行脚本时所处的目录

bash-获取从不同目录运行脚本时所处的目录,bash,Bash,如果我在/home/which中运行,比如说,$bash/home/folder/subfolder/script1.sh,如何将/home/folder/subfolder放入变量中$0或$(readlink-f$0)给我完整的路径和文件名,即/home/folder/subfolder/script1.sh,这不是我想要的。提前感谢。获取脚本名称后使用basename dirname /home/folder/subfolder/script1.sh 输出 /home/folder/sub

如果我在
/home/which
中运行,比如说,
$bash/home/folder/subfolder/script1.sh
,如何将/home/folder/subfolder放入变量中
$0
$(readlink-f$0)
给我完整的路径和文件名,即/home/folder/subfolder/script1.sh,这不是我想要的。提前感谢。

获取脚本名称后使用basename

dirname /home/folder/subfolder/script1.sh
输出

/home/folder/subfolder
你可以试试这个:

#!/bin/bash

p=$(dirname $0)
echo $p