質問: ‘pwd‘ sed -e ’s/current_dir/$dir_data’ ファイル名 でできるかなと思ったのですが、”current_dir”が”$dir_data”に置換されてしまいます。 さらにdirパスが”/”で区切られていることも問題のようです。
回答: このコードには、いくつかの問題点があります。 1.sedのコマンドをシングルクオート''でくくっているため、シェルスクリプト的に、変数置換が行われない。 2.仮に、うまく置換されてもご自身で指摘している通り、パス区切りに使われている/をエスケープする方策がなされていない。 3.これは単なる書込み時の記述もれかと思われるが、sedコマンドの後ろのスラッシュがない。 ーーー 1.に関しては普通にダブルクオート""でくくってください。 2.sedの区切り文字はコマンドの後ろの文字がそのまま区切り文字になります。 例 sed -e "s#current_dir#${dir_data}#" このようにすれば、/はsed的に特殊文字でなくなるので、問題ありません。