2014-02-28 103 views
0

我目前正在嘗試用Python重寫一些tcsh shell腳本。我剛纔看到

一件事是

set WORK = "/dev/shm" 

if ($?WORK) then 
    if ($WORK == "") then 
    set WORK = "/tmp" 
    endif 
else 
    set WORK = "/tmp" 
endif 

這是什麼呢?

我首先想到的是(在閱讀這個related question之前)是它檢查變量$WORK是否被設置。但這並沒有多大意義,因爲它是在兩行之前設定的。此外,這似乎不涉及「錯誤代碼」。你能告訴我這部分應該做什麼嗎?

+0

除了@達米爾Kasipovic響應。請參考此[示例](http://stackoverflow.com/a/6834572) – semopuri

回答

0

第一次看,我會說它會檢查在WORK中指定的目錄是否存在。如果是,則檢查是否「」,如果是,則將其設置爲「/ tmp」。另外,如果它不存在,則將其設置爲「/ tmp」。

看起來像某種工作目錄變量。工作目錄可以是「」(當前目錄)。

所以基本上這個腳本存在如果/ dev/shm存在,因爲用戶可能應該在WORK中輸入他自己的目錄。

讓我知道你在想什麼。

+0

這聽起來是正確的。謝謝你:-) –

+0

這個答案是不正確的(見下文)。 – keithpjolley

0

從來沒有一個測試目錄是否真的存在。

set WORK = "/dev/shm"   # sets the WORK var to /dev/shm 

if ($?WORK) then    # tests if the WORK var is set 
    if ($WORK == "") then  # WORK is set, test if it is set to "" 
     set WORK = "/tmp"  # empty WORK var is set to /tmp 
    endif 
else 
    set WORK = "/tmp"   # WORK was not set, set to /tmp 
endif 

換句話說,整個「if」代碼塊沒用。