當然Alan還不算最倒霉的,至少他沒試過shell變量。 我們前面說過,sh和csh對shell變量的實現不太一樣。這本來沒有什麼,可是一些shell變量的語義(比如定義的時刻,改變的原子性等)沒有被好好說明或定義。總會遇到一些奇怪反常規的shell變量,只有反覆試驗以後才能明白。 日期: Thu, 14 Nov 1991 11:46:21 PST 發信人: Stanley's Tool Works (lanning@parc.xerox.com) 主題: You learn something new every day (每天都有新發現) 收信人: UNIX-HATERS 運行一下這個腳本: #!/bin/csh unset foo if ( ! $?foo ) hen echo foo was unset else if ("$foo" = "You lose") then echo $foo endif 會產生如下錯誤: foo: Undefined variable. 如果要讓這個腳本"正確工作",你必需求助於以下這個腳本: #!/bin/csh unset foo if ( ! $?foo ) hen echo foo was unset set foo else if ("$foo" = "You lose") then echo $foo endif [注意,我們必須在發現foo沒有被定義的時候'set foo'.] 清楚了麼?
沒有留言:
發佈留言