この質問は以前に要求されたが解決されていないようです。
私が試した解決策の1つは、ここのドキュメント。次のコードを使用しました。
#!/bin/bash
su - mv2 <<EOSU
DELIVER_BRANCH="development"
echo ${DELIVER_BRANCH}
exit;
EOSU
上記のコードを試しましたが、ビットはecho ${DELIVER_BRANCH}
何も印刷しませんでした。
答え1
あなたが望むもの:
#!/bin/bash
su - mv2 <<'EOSU'
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
EOSU
最初の項目の周りに一重引用符がありますEOSU
。省略すると、区切り文字は$
渡される前に補間されます。つまり、空"$DELIVER_BRANCH"
の現在(呼び出しシェルの場合su
)の内容に置き換えられます$DELIVERY_BRANCH
。
DELIVERY_BRANCH=production
cat <<'EOSU'
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
EOSU
印刷
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
しかし、
DELIVERY_BRANCH=production
cat <<EOSU
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
EOSU
印刷
DELIVER_BRANCH="development"
echo production
exit;