スクリプトの絶対パスを環境変数の参照に置き換える sed コマンド
Qiita に投稿した記事の要約です。全文はこちらです。
例えば、こんなスクリプトがあったとします。
run0.sh
上記の /home1/hoge/fuga/nagai/mohitotsu/ を環境変数 FILEPATH に置き換えてスッキリさせたい。
run1.sh
これは以下のようにするとできます。2行目の sed コマンドで、「\x24」が$マークを示すことと、置換パタンをダブルクォート(")で囲むのがポイントです。
例えば、こんなスクリプトがあったとします。
run0.sh
cat /home1/hoge/fuga/nagai/mohitotsu/data.txt | python /home1/hoge/fuga/nagai/mohitotsu/weekday1.py
上記の /home1/hoge/fuga/nagai/mohitotsu/ を環境変数 FILEPATH に置き換えてスッキリさせたい。
run1.sh
cat ${FILEPATH}/data.txt | python ${FILEPATH}/weekday1.py
これは以下のようにするとできます。2行目の sed コマンドで、「\x24」が$マークを示すことと、置換パタンをダブルクォート(")で囲むのがポイントです。
export FILEPATH=/home1/hoge/fuga/nagai/mohitotsu
sed -s "s:${FILEPATH}:\x24{FILEPATH}:g" run0.sh > run1.sh
chmod +x ./run1.sh