我有以下 bash 代码,我想在 perl 脚本中运行它。作为 bash 脚本,代码运行时没有任何错误。但是在 perl 脚本中,它给出了错误:./061_rewrite_aws.pl 第 48 行 bash' 后的名称错误。
system(' 'bash' '-c' <<'END_SHELL_CODE';
AWS_Base="/run/user/1000/gvfs/smb-share:server=192.168.0.205,share=zmd-backup"
pushd /home/zmd/AWS/AWS_DataDirs
cp -R $AWS_Base/* ./
popd
'END_SHELL_CODE' ');
帮助将不胜感激
我认为那行 perl 只是引用了一些错误。
system
将字符串列表作为参数,因此我将该引用更改为字符串列表。
bash
成为某个变量的名称。;
第一行后面的 END_SHELL_CODE 和END_SHELL_CODE
最后的单引号不适用于 perl 的格式,所以我删除了它。这样的事情对我有用:
system('bash', '-c', <<'END_SHELL_CODE'
AWS_Base="/run/user/1000/gvfs/smb-share:server=192.168.0.205,share=zmd-backup"
pushd /home/zmd/AWS/AWS_DataDirs
cp -R $AWS_Base/* ./
popd
END_SHELL_CODE
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句