如何使用 .csh 脚本中的命令行参数执行 .csh 脚本

发布于 2024-08-05 00:08:51 字数 773 浏览 4 评论 0原文

所以我有.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寂寞花火° 2024-08-12 00:08:51

我想说,当位置参数变量与其他一些字符连接时,您可能需要在位置参数变量周围放置花括号:

set destination1 = /scratch/graphics/${1}gif

但您可能也需要在其中加一个点:

set destination1 = "/scratch/graphics/${1}.gif"

并且引号可以防止空格。

I would say you probably need to put curly braces around the positional parameter variable when they are concatenated against some other characters:

set destination1 = /scratch/graphics/${1}gif

But you might want a dot in there, too:

set destination1 = "/scratch/graphics/${1}.gif"

and quotes protect against spaces.

浅黛梨妆こ 2024-08-12 00:08:51

$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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文