如何使用 .csh 脚本中的命令行参数执行 .csh 脚本
所以我有.csh脚本generate.csh 我想从其中调用另一个 .csh 脚本。 我尝试了
./shell_gen.csh test1 test2.prt
但它运行 shell_gen.csh 但没有命令行参数。
有人吗?
感谢
generate.csh
#!/bin/csh
./shell_gen.csh test1 test2.prt
shell_gen.csh
#!/bin/csh
set source = output
############################################################
# create pbm-gifs/ directory
############################################################
set destination1 = /scratch/graphics/$1gif
echo making $destination1
if ( ! -e $destination1 ) then
mkdir $destination1
foreach file ( $source/*.pgm )
echo convert $file $destination1/$file:t:r.gif
convert $file $destination1/$file:t:r.gif
end
else
echo "$destination1/ exists"
endif
So I have .csh script generate.csh
I want to call another .csh script from within it.
I tried
./shell_gen.csh test1 test2.prt
But it runs shell_gen.csh but without command line arguments.
Anyone?
Thanks
generate.csh
#!/bin/csh
./shell_gen.csh test1 test2.prt
shell_gen.csh
#!/bin/csh
set source = output
############################################################
# create pbm-gifs/ directory
############################################################
set destination1 = /scratch/graphics/$1gif
echo making $destination1
if ( ! -e $destination1 ) then
mkdir $destination1
foreach file ( $source/*.pgm )
echo convert $file $destination1/$file:t:r.gif
convert $file $destination1/$file:t:r.gif
end
else
echo "$destination1/ exists"
endif
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想说,当位置参数变量与其他一些字符连接时,您可能需要在位置参数变量周围放置花括号:
但您可能也需要在其中加一个点:
并且引号可以防止空格。
I would say you probably need to put curly braces around the positional parameter variable when they are concatenated against some other characters:
But you might want a dot in there, too:
and quotes protect against spaces.
$1gif 不是对位置参数的引用。
您是否按照丹尼斯的建议尝试了 ${1}gif ?我认为这应该有效。
另外,尽管您的生成明确发送了第二个参数,但我在任何地方都没有看到对 $2 的引用。
最后,第一行可能应该是 #!/bin/csh -f
Best,
-pbr
$1gif isn't a reference to a positional parameter.
Did you try ${1}gif as Dennis suggested? I think that should work.
ALSO I see no reference to $2 anywhere though your generate clearly sends a second argument.
Lastly the first line should probably be #!/bin/csh -f
Best,
-pbr