我创建了以下 test1.csh 和 test2.csh 来调试来自 link_grib.csh 的错误,这是一个来自名为 WRF 的气候模拟软件包的 .csh 脚本。
我在这台 Linux 服务器上没有超级用户访问权限。提供的脚本对于同一服务器上的超级用户运行良好,因此不需要修改。
我从 link_grib.csh 中提取了两个简单的片段,一个涉及 foreach,另一个涉及符号链接,并说明了我看到的输出,请参阅下面的问题。
1) 测试1.csh
#!/bin/csh
echo ${1}
foreach f ( ${1}* )
end
输出:
[frank@simunec1 20130604_mini]$ ls ./FNL.dat
./FNL.dat
[frank@simunec1 20130604_mini]$ test1.csh ./FNL.dat
./FNL.dat
foreach: No match.
问题:为什么 foreach 会在这里返回不匹配?
2)Test2.csh
#!/bin/csh
ln -sf ./FNL.dat GRIBFILE.AAA
输出:
[frank@simunec1 20130604_mini]$ test2.csh
[frank@simunec1 20130604_mini]$ ls GRIBFILE.AAA
ls: cannot access GRIBFILE.AAA: No such file or directory
// but running the same command outside of .csh script, everything is fine
[frank@simunec1 20130604_mini]$ ln -sf ./FNL.dat GRIBFILE.AAA
[frank@simunec1 20130604_mini]$ ls GRIBFILE.AAA
GRIBFILE.AAA
问题:为什么在 .csh 脚本之外运行相同的命令有效。