如何在find和bash -c中传递变量?

前端之家收集整理的这篇文章主要介绍了如何在find和bash -c中传递变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嘿伙计们,我遇到了将变量传递给%exe部分代码的问题.需要你的帮助.

这是我在bash脚本中使用的工作代码

@H_403_3@## Function targz() { find $1 -type f -name "*.$2" -exec \ bash -c 'old=$(basename {}); new=${old/%exe/tar\.gz}; \ tar -zcvf $new $old; ' \; } ## Function Call ## targz [directory] [extension] targz . 'exe';

是的我尝试过这样的事:

@H_403_3@new=${old/%$2/tar\.gz};

但它生成文件名如:file.exetar.gz

尝试: @H_403_3@targz() { find $1 -type f -name "*.$2" -exec \ bash -c 'old=$(basename {}); new=${old/'"$2"'/tar\.gz}; \ tar -zcvf $new $old; ' \; }

诀窍是退出单引号,以便执行变量扩展.

原文链接:https://www.f2er.com/bash/383571.html

猜你在找的Bash相关文章