我有簡單的腳本來準備檔案,它按預期作業。所有代碼都在 docker image alpine:latest (so ash busybox) 處執行
echo "credentials \"url.com\" {token = \"${VALUE}\"}" > ~/.terraformrc
后來我想準備測驗,我為此使用 if [[ ]] 語法。
if [[ $(cat ~/.terraformrc) != "credentials \"url.com\" {token =\"VALUE\" }" ]]; then exit 1; fi
在 Bash 測驗正在運行,但在 ash/busybox/alpine 上我得到了
sh: "url.com": unknown operand
同樣在 ash/busybox/alpine 上,當我回顯時,所有內容都正確轉義
echo "credentials \"url.com\" {token = \"VALUE\" }"
credentials "url.com" {token = "VALUE" }
我應該如何在 [ ] 或 [[ ]] 內轉義?謝謝幫助
uj5u.com熱心網友回復:
[[ ]]用于 bash,對于 ash,您應該改用 POSIX [ ]:
#!/bin/sh
value=VALUE001
echo "credentials \"url.com\" {token = \"$value\"}" > ~/.terraformrc
if [ "$(cat ~/.terraformrc)" != "credentials \"url.com\" {token =\"VALUE001\" }" ]
then
exit 1
fi
順便說一句,您正確地進行了轉義,但您忘記了雙引號$(cat ~/.terraformrc)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/442660.html
上一篇:獲取迭代的最后一行-UNIX
