hene

hene.dev

変数を設定しているときだけ、書き換える

変数を設定しているときだけ、書き換える

見た感じ同じだが、パターン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

参考