I'm trying to modify some scripts with a combination of Bash and Perl. The trouble is that Perl thinks that $index
is its own variable, which is never defined:
for index in {1..25}; do
perl -pi -e 's/\d+/$index/' cmd_$index.sh;
done
Is there a way to make $index
wear its Bash cloak within the Perl one-liner?
Squeeze an export index;
in the do
loop. Refer to $ENV{index}
in the body of the Perl program.
Alternatively: Use the double quotes "… $index … "
to interpolate the shell variable into the expression that makes up the body of the Perl program. In case you want to expand this one-liner, take care to properly escape Perl expressions, such as $
on variable names, and perhaps backslashes, so that are interpreted by Perl, not the shell.
Use "
instead of '
. The bash can then substitute the variable before perl sees it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With