我怎样才能修改这个输入:
/home/USER/Desktop/script.sh
对此输出:
/home/USER/Desktop/
...使用bash
或perl
?
当然script.sh
可以是任何东西:(例如scrasdfipt.sh
,等)以及它之前的路径可以是任何东西。
答案1
dirname /home/USER/Desktop/script.sh
答案2
为了精确的问题,你可以使用
printf "$(dirname /home/USER/Desktop/script.sh)/"
我猜这是一个XY问题,并且您想要引用其中的文件与当前脚本相同的目录。如果是这样:
current_dir="$(dirname -- "$0")"
此时你可以做类似的事情
source "${current_dir}/foo.sh"
echo foo > "${current_dir}/bar.txt"
答案3
使用bash:
$ dirname -- "$string"
你也可以用同样的方式得到最后一点,如下所示:
$ basename -- "$string"