$prod
CIパイプラインにシェルスクリプトをデプロイしていますが、CIには3$dev
つの環境変数が定義されています $test
。
私のスクリプトは、展開の種類に応じて正しい文字列値を返します。
#!/bin/sh
my_env = // the checking logic
# the value of my_env is a string value of one of 'prod', 'dev' or 'test'
my_env
または、値を指すようにスクリプトで変数を動的に生成する方法を知りたいです。実際の値ではなく文字列値だけを保存するため、できないことを意味します。$prod
$dev
$test
$my_env
dev
$dev
答え1
あなたはできません:それは変数が機能する方法ではありません。
ただし、シェル関数を呼び出すことで変数の使用を置き換えることができます。これは簡単ですが、使用するシェルによって異なります。残念ながら、記号は/bin/shell
これを知らせません。
zshの場合は次のようになります。
check_env() {
# do your checking
print "prod" # or "test" or whatever
}
...
if [[ "$(check_env)" = "prod" ]] {
rm -rf /
}