如何在find和bash -c中传递变量?
发布时间:2020-12-16 01:37:56 所属栏目:安全 来源:网络整理
导读:嘿伙计们,我遇到了将变量传递给%exe部分代码的问题.需要你的帮助. 这是我在bash脚本中使用的工作代码: ## Functiontargz() { find $1 -type f -name "*.$2" -exec bash -c 'old=$(basename {}); new=${old/%exe/tar.gz}; tar -zcvf $new $old; ' ;}#
嘿伙计们,我遇到了将变量传递给%exe部分代码的问题.需要你的帮助.
这是我在bash脚本中使用的工作代码: ## 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'; 是的我尝试过这样的事: new=${old/%$2/tar.gz}; 但它生成的文件名如:file.exetar.gz
尝试:
targz() { find $1 -type f -name "*.$2" -exec bash -c 'old=$(basename {}); new=${old/'"$2"'/tar.gz}; tar -zcvf $new $old; ' ; } 诀窍是退出单引号,以便执行变量扩展. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |