您對YAML語法做出了一些假設,導致了您的問題。如果「exend」通過縮進以後的行,其YAML的,就像這樣:
- The quick brown fox
jumped over the
lazy dog.
正是像你,而不是寫這個:
- The quick brown fox jumped over the lazy dog.
這意味着你的彈片,你」 VE寫成:
- if [ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" ]; then
./.travis/success_message.sh
fi
實際上就變成了:
if [ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" ]; then ./.travis/success_message.sh fi
如果你嘗試運行shell那行,你會得到:
sh: -c: line 1: syntax error: unexpected end of file
如果你希望在你的YAML文檔中的多行shell腳本,你最好的選擇可能是使用逐字塊運營商,|
,像這樣:
- |
if [ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" ]; then
./.travis/success_message.sh
fi
這將導致,如預期,在:
if [ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" ]; then
./.travis/success_message.sh
fi
或者,你可以強制牛逼正確使用分號:
- if [ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" ]; then
./.travis/success_message.sh;
fi
注意終端fi
前新;
。這導致:
if [ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" ]; then ./.travis/success_message.sh; fi
...這是完全有效的shell語法。