Csh
csh if 語句互動使用
要麼我的 Solaris 10 csh 實現if語句有問題,要麼我沒有得到正確的東西(當然,至少在我的情況下,第二個很可能)但是當我這樣做時:
% if 1 then <enter> %
=> 什麼都沒發生
當我這樣做時:
% if 0 then ?
=> 這也是我在第一種情況下所期望的。Couse 否則我沒有辦法完成我的陳述而沒有得到
if: improper then
我真的可以請您不要以“不要使用 csh”作為您讚賞的答案的開頭……如果您真的喜歡它,您可以用它來結束它。Couse 在過去幾年到現在為止,csh 為我的互動目的提供了很好的服務,對於我所做的這個小腳本,我使用 Bourne shell 或 bash。
謝謝
首先,了解(在 csh
endif
中)如果沒有待處理的 if(s) 要關閉,則為無操作(無操作)。執行它沒有任何效果。% endif %
因此,如果很清楚(因為值為 1,這對 csh 表示 true,與 c 語言中的完全一樣) if 之後的命令將被執行,則無需延遲它們的執行,並且它們是“允許的” " 立即生效:
% if (1) then % echo yes yes % echo no no % endif
但是,對於假值 (0),在執行 a 之前會避免
endif
執行。% if (0) then ? echo yes ? echo no ? endif %
這就是 csh 的工作原理。
注意:我不明白
if: improper then
.if 0 then
也許錯誤在其他地方。編輯
嗯……一些澄清可能是為了。如果我寫(為了清楚起見,添加前的空格,請
<enter>
忽略它們):% if 0 then <enter> !!!!!!!!!!!!! ? echo Hello there ? echo Yes ? endif %
我沒有錯誤。
如果我寫:
% if 0 then echo Hello there <enter> !!!!!!!!!!!!! % if: Improper then.
我明白你的錯誤。