この入力をどのように変更しますか?
/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
バッシュ使用:
$ dirname -- "$string"
次のように同じ方法で最後のビットを取得することもできます。
$ basename -- "$string"