如何将我的Bash循环变量传递给Perl解释器?

Zai*_*aid 11 bash perl

我正在尝试使用Bash和Perl的组合修改一些脚本.问题是Perl认为这$index是它自己的变量,它永远不会被定义:

for index in {1..25}; do
    perl -pi -e 's/\d+/$index/' cmd_$index.sh;
done
Run Code Online (Sandbox Code Playgroud)

有没有办法$index在Perl单线内穿Bash斗篷?

dax*_*xim 19

export index;do循环中挤压一个.请参阅$ENV{index}Perl程序的正文.

或者:使用双引号"… $index … "将shell变量插入到构成Perl程序主体的表达式中.如果你想扩展这个单行,请注意正确地转义Perl表达式,例如$变量名和可能的反斜杠,以便由Perl解释,而不是shell.


dgw*_*dgw 7

"而不是'.然后bash可以在perl看到它之前替换变量.