Tclを使用してIf文の式を評価する方法を理解しようとしています。これは私が持っているものです。Tclを使ってif文で式をtrueに評価する
#!/bin/sh
#The next line executes wish - wherever it is \
exec wish "$0" "[email protected]"
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
、これは私が端末から得るものです:
# wan27
Error in startup script: wrong # args: no script following " $apsta == 1 " argument
while executing
"if { $apsta == 1 }"
(file "/usr/bin/wan27" line 9)
Apacheが実行されている場合はApache場合、私はちょうど、出力に悲しいものを幸せな笑顔をしようとしています停止している - ファイルが存在する「/var/run/apache2.pid」かどうかをブール条件に基づいて...
あなたはかなりそれ以外の言語は、ステートメントを終了するので(ただし、独自のインデントルールを選ぶが、私は3つのまたは4のスペースを好む)のTclで唯一の真のブレーススタイルを使用するんです最初の改行で。あなたの唯一の選択肢は、あなたが継続したい行の最後に余分なバックスラッシュを追加することですが、私はそれが残念です*遠く*もっと思う。 (あるいは、コマンド間にセミコロンをつけて長い行に物事を書いてください。醜いですが、中かっこやインデントの問題はありません。) –
これでいいです。通訳者は、if文と同じ行にブレースが来ることを期待していました。私はキーワードが空白で区切られている必要があり、if {}のような評価記号に貼り付けることができなかったことにも気づいた。 – fabjoa
'[ファイルは...]'は真偽の結果を返すので、明示的に結果を1と比較する必要はありません: 'if {$ apsta} {...}' –