gpt4 book ai didi

linux - csh 脚本 foreach 和符号链接(symbolic link)

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:50 28 4
gpt4 key购买 nike

我创建了以下 test1.csh 和 test2.csh 来调试来自 link_grib.csh 的错误,这是一个来自名为 WRF 的气候模拟软件包的 .csh 脚本。

我在这台 Linux 服务器上没有 super 用户访问权限。提供的脚本对于同一台服务器上的 super 用户运行良好,因此不需要修改。

我从 link_grib.csh 中提取了两个简单的片段,一个涉及 foreach,另一个涉及符号链接(symbolic link),并说明了我看到的输出,请在下面查看我的问题。

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)测试2.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 脚本之外运行相同的命令会起作用。

最佳答案

随便猜一下,你有一个 .cshrc正在更改目录的文件。

我会尝试放一个 -f在 shebang 行 ( #!/bin/csh -f ),或使用 csh -f <file> 调用 csh 脚本.

您可以使用 -X该选项将显示在启动脚本(.cshrc 文件)中执行的命令,这可以为您指明正确的方向。

关于linux - csh 脚本 foreach 和符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16934201/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com