gpt4 book ai didi

linux - 如何将我的 Bash 循环变量传递给 Perl?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:21 25 4
gpt4 key购买 nike

我正在尝试使用下面的脚本替换许多文件中的字符串,但我无法将 i 的值传递给 perl,因为下面传递的是第一个文件夹中的文件名

for i in `ls | awk -F".conf" '{print $1}'`
do
export i

/usr/bin/perl -p -i -w -e 's/error_log \/dev\/null crit;/error_log \/var\/log\/nginx\/$ENV{i}_error error;\n/g;' *


done

有什么建议吗?

谢谢

最佳答案

您可以将其作为命令行参数传递。请注意迭代配置文件的正确方法。

for i in *.conf; do
f=${i%.conf}
perl -piwe 's|error_log /dev/null crit;|error_log /var/log/nginx/$ARGV[0]_error error;\n|g;' "$f"
done

关于linux - 如何将我的 Bash 循环变量传递给 Perl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42747585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com