【发布时间】:2018-03-24 11:48:47
【问题描述】:
如果我在它运行的脚本中写这个
if [[ 1 == 1 ]]
then
echo "true"
fi
但是如果我尝试用 ; 替换换行符使用活动 shell 时出现语法错误
if [[ 1 == 1 ]]; then; echo "true"; fi
为什么?
在then 和; 之后点击enter 有什么区别
【问题讨论】:
-
then后面不能有分号。这有点像if (newline) [[ 1 == 1 ]] …与if; [[ 1 == 1 ]] …的含义不同。 -
技术上你根本不需要
;。您甚至可以交互地使用多行。 -
if 的语法:
if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi您可以用换行符替换任何空格和分号。相反,您不能用分号替换每个换行符。
标签: bash if-statement syntax