我在 ansible 的角色中有這個 shell 腳本,它不會運行:
- name: validate AWS cloudwatch download
shell: |
cw_expected_key="9376 16F3 450B 7D80 6CBD 9725 D581 6730 3B78 9C72"
cw_public_key=`gpg --import /tmp/cloud-watch-validation/amazon-cloudwatch-agent.gpg |& grep -Po "key\s*[A-Z0-9] " | egrep -o "[A-Z0-9] "`
key=`gpg --fingerprint $cw_public_key |& grep -Po $cw_expected_key`
if [ "$key" != "$cw_expected_key" ]; then
exit 1
fi
validation=`gpg --verify /tmp/cloud-watch-validation/amazon-cloudwatch-agent.deb.sig /tmp/cloud-watch/amazon-cloudwatch-agent.deb |& grep -Po "Good signature"`
if [ "$validation" != "Good signature" ]; then
exit 1
fi
我收到此錯誤:
致命:[127.0.0.1]:失敗!=> {"changed": true, "cmd": "cw_expected_key="9376 16F3 450B 7D80 6CBD 9725 D581 6730 3B78 9C72"\ncw_public_key= gpg --import /tmp/c loud-watch-validation/amazon-cloudwatch-agent.gpg |& grep -Po \"key\\s*[A-Z0-9] \" | egrep -o \"[A-Z0-9] \"\nkey= gpg --fingerprint $cw_public_key |& grep -Po $cw_expected_key\nif [ "$key" != "$cw_key"; then \n exit 1\nfi\nvalidation= gpg --verify /tmp/cloud-watch-validation/amazon-cloudwatch-agent.deb.sig /tmp/cloud-watch/amazon-cloudwatch-agent.deb |& grep -Po \"Good signature\"\nif [ "$validation" != "Good signature" ]; then\n exit 1 \nfi\n", "delta": "0:00:00.003070", "end" : "2021-11-02 18:57:44.246780", "msg": "非零回傳碼", "rc": 2, "start": "2021-11-02 18:57:44.243710", " stderr": "/bin/sh: 1: 語法錯誤: "&"意外", "stderr_lines": ["/bin/sh: 1: 語法錯誤: "&"意外"], "stdout": "",
誰有想法?
uj5u.com熱心網友回復:
|&是一個 Bash 擴展,相當不推薦使用。sh模式下不支持。無論如何不要使用|&,忘記它的存在。使用2>&1 |. 請參閱https://wiki.bash-hackers.org/scripting/obsolete
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/346502.html
上一篇:宣告-a/-A矩陣(Bash)
