実は最近まで知らなかったのでメモ。
環境
$ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17) Copyright (C) 2007 Free Software Foundation, Inc.
やり方と例
こんな感じでシェルスクリプトを用意する
$ cat test.sh echo hoge is $HOGE .
HOGE
に何も設定されていないので実行すると何も出ない
sh test.sh hoge is .
コマンド実行前に文を入れると成立する
$ HOGE="Set All Right" sh test.sh hoge is Set All Right .
複数設定もできる
$ cat test.sh echo hoge is $HOGE . huga is $HUGA $ HOGE="Set All Right" HUGA="xxx" sh test.sh hoge is Set All Right . huga is xxx
ただし実行するシェル自体には反映されないので注意、下記の例だとセットされていないので何も出ないことがわかる。
HOGE="Set All Right" echo hoge is $HOGE hoge is
参考リンク
シェル 一時的な環境変数を渡す方法csh/tcsh/sh/zsh/bash - sh系だけでほかは書き方が違う