使用cat> file.sh<时忽略shell脚本中的变量

时间:2013-03-12 17:50:33

标签: perl shell embed cat

我有一个关于在shell脚本中嵌入脚本文件的问题。我经常需要创建一个解包其他脚本的shell脚本,但实际上不喜欢注释掉所有嵌入脚本的变量。我的shell脚本的内容示例:

echo "Hello world"
pwd

cat>embedded_perl_script<<EOF
#!/usr/bin/perl -w
\$input = \$ARGV[0];
my \$argc;
\$argc = @ARGV;
print \$input
EOF

perl embedded_perl_script
echo "Finished!"

这段代码工作正常,但我真的想要一种方法来避免注释掉所有嵌入式perl脚本的变量。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

echo "Hello world"
pwd

cat>embedded_perl_script<<'EOF'
#!/usr/bin/perl -w
$input = $ARGV[0];
my $argc;
$argc = @ARGV;
print $input
EOF

perl embedded_perl_script
echo "Finished!"

请注意,EOF已更改为'EOF' =)

注意:此技术名为 here-doc