我正在对脚本进行故障排除,我想手动输入每一行,逐行查找错误。
我的脚本有一个 if 语句:
if [ -d dir1 ]; then
rm -rf dir1
fi
Run Code Online (Sandbox Code Playgroud)
所以我尝试输入一行命令
$ if [ -d dir1 ]; then rm -rf dir1 fi
>
Run Code Online (Sandbox Code Playgroud)
我尝试了 Ctrl-D 但收到消息:bash: 语法错误:意外的文件结尾
那么如何在命令行中输入这个if语句呢?
Joh*_*ohn 16
简短回答:后面需要一个分号rm -rf dir1
。
查看实际效果:if
完全按照脚本中显示的方式输入块:
$ if [ -d dir1 ]; then
> rm -rf dir1
> fi
Run Code Online (Sandbox Code Playgroud)
运行后,使用向上箭头回调最后一个命令,它将if
在一行上显示整个块:
$ if [ -d dir1 ]; then rm -rf dir1; fi
Run Code Online (Sandbox Code Playgroud)
shell 需要某种方式来解释 if 块内命令之间的中断。它不能简单地将其视为一次执行的单个命令,因此分号充当这些中断。