変数にパスとファイル名を割り当てたいです。
/path/to/myfile/file.txt
例えば
MYFILE=$(pwd)$(basename)
どうすればいいですか?
答え1
質問に答えるには、指示に従ってください。これは単純な文字列連結です。
somedirpath='/some/path' # for example $PWD or $(pwd)
somefilepath='/the/path/to/file.txt'
newfilepath="$somedirpath"/"$( basename "$somefilepath" )"
/
文字列を連結するときに、パスパラメータを使用して2つのパス要素の間にaを含めたいと思うかもしれませんbasename
(質問ではありません)。
bash
他の答えを読むと、スクリプトのパスと名前を探しているようです。これはBASH_SOURCE
配列で使用できます。これは(関数にない限り)あなたが望むようになる唯一の要素です。一般的に最後表示する配列の要素です。
bash
4.4では${BASH_SOURCE[-1]}
。
答え2
私はこれを試してみました:
#!/bin/bash
SCRIPT=$(pwd)$(basename $0)
echo $SCRIPT
もっと良い方法があれば共有してください。