LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 695|回复: 2

sh -c可不可以这样用?

[复制链接]
发表于 2004-10-6 22:16:28 | 显示全部楼层 |阅读模式
有一个perl文件,正常运行需要两个参数。
在Console下直接运行sh -c ./free_align.pl aattagcaatagcat ccagttatc(free_align.l是那个perl文件,aattagcaatagcat ccagttatc两个字符串是参数)好像参数没有起作用。
但在Console下直接./free_align.pl aattagcaatagcat ccagttatc或者perl ./free_alignpl aattagcaatagcat ccagttatc都是可以的。
请教一下,是不是不应该这么用?
发表于 2004-10-6 23:26:00 | 显示全部楼层
perl的脚本需要用perl这个解释器去解释执行
当然,如果你的perl脚本有执被予执行权限,./file.pl这样执行也是没问题的,因为在perl脚本的首行,均有#!/path/perl这样的标识.
ps:file.sh一般是shell脚本,file.pl一般是perl脚本
 楼主| 发表于 2004-10-7 09:58:36 | 显示全部楼层
是这样,我需要用一个Java文件来调用执行那个perl文件。在Java文件中用exec(dir+" "+task)或者exec("perl "+dir+" "+task)都是可以的(dir是那个可执行Perl文件的路径,task是个String变量,是该文件运行时所带的参数)。但是我试着用exec("sh -c "+dir+" "+task)似乎task所表示的参数并没有起作用。
而不用Java文件调用,直接用Console便是前面所说的情况。
所以我想请教一下怎么才能让两个参数起作用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表