我正在试图找出如何使用Tcl评估If语句中的表达式.这就是我所拥有的:
#!/bin/sh
#The next line executes wish - wherever it is \
exec wish "$0" "$@"
set apid "/var/run/apache2.pid"
set apsta [file exist $apid]
if { $apsta == 1 }
{
set result ":)"
}
else
{
set result ":("
}
label .status -text $result
pack .status
Run Code Online (Sandbox Code Playgroud)
这就是我从终端获得的:
# wan27
Error in startup script: wrong # args: no script following " $apsta == 1 " argument
while executing
"if { $apsta == 1 }"
(file "/usr/bin/wan27" line 9)
Run Code Online (Sandbox Code Playgroud)
如果Apache正在运行,我只是想输出一个快乐的笑脸,如果Apache被停止,这是一个令人遗憾的笑脸 - 基于布尔条件,无论文件"/var/run/apache2.pid"是否存在......
Tcl if语句的语法是
if condition statement else statement
Run Code Online (Sandbox Code Playgroud)
必须在一条线上.大括号允许跨线连续,并且它们的位置是强制性的:
if { $apsta == 1 } {
set result ":)"
} else {
set result ":("
}
Run Code Online (Sandbox Code Playgroud)
正如你所写,Tcl看到了
if { $apsta == 1 }
Run Code Online (Sandbox Code Playgroud)
并停在那里产生语法错误.