変数を設定しているときだけ、書き換える
変数を設定しているときだけ、書き換える
見た感じ同じだが、パターン1
は定数が定義されてしまうかも?
パターン 1
hoge.sh
#!/bin/bash
echo "HOGE: ${HOGE}"
export HOGE=${HOGE:+hoge}
echo "HOGE: ${HOGE}"
結果
$ ./hoge.sh
HOGE:
HOGE:
$ HOGE=test ./hoge.sh
HOGE: test
HOGE: hoge
パターン 2
fuga.sh
#!/bin/bash
echo "FUGA: ${FUGA}"
[[ -n "${FUGA}" ]] && FUGA=fuga
echo "FUGA: ${FUGA}"
結果
$ ./fuga.sh
FUGA:
FUGA:
$ FUGA=test ./fuga.sh
FUGA: test
FUGA: fuga