2014-02-28 56 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”代码块没用。