我正在尝试编写脚本(混合使用perl和bash)来解压缩文件。使用变量在perl/bash中存储命令行
unzip命令是用户特定的(取决于文件),因此用户需要输入命令的开头,然后将其存储在名为$ unzipCommand(perl)的变量中。例如,用户可以输入'gunzip'或'gunzip'。例如:
my $unzipCommand = "gunzip";
这个变量是可以访问和运行的,例如,我可以将它打印到屏幕上。但是,我想用它来构建一个存储在.sh文件中的命令行。
我试过各种方法来做到这一点,但似乎没有任何工作。 临屋变量是这样的:
my $cmd = "$unzipCommand $path2zippedfile > $path2file";
并将其存储在一个shell脚本,我曾尝试:
`echo "$cmd" > $sh_script`;
和
open $sh_script, ">", "$QSUB" or die "Can't open '$QSUB'";
print $sh_script "$cmd";
close $sh_script;
它似乎总是命令是“执行'而不是打印在文件中。
我知道命令的工作原理是因为如果我硬编码'gunzip',我不会得到这个错误。
任何帮助将不胜感激。 谢谢!
开启调试功能,查看引用级别(dbl-quote vs back quotes vs vs single quotes)中的变量 - >值是否可见。祝你好运。 – shellter
什么'print“$ cmd”;'(Perl)给你? – thonnor