我正在尝试将以下命令的输出存储到新变量中,到目前为止没有任何运气:
lineNumber="$(perl -ne '{$n=$. if /$inpuTtext/} END {print '$n\n'}')"
其中$ inpuTtext来自上一行,该行读取用户的输入。
read inputText
任何帮助将不胜感激,
谢谢。
答案 0 :(得分:0)
单引号字符串可以与双引号连接在一起,以允许扩展inputText
lineNumber="$(perl -ne '{$n=$. if /'"$inputText"'/} END {print "$n\n"}')"
$n\n
周围的单引号也关闭了perl命令(未嵌套)。
请注意,inputText是按原样注入perl命令中的,因此,例如,如果inputText可以包含/
,则必须将其用作分隔符进行转义。
否则inputText可以与环境一起传递:
lineNumber="$(inputText=$inputText perl -ne '{$n=$. if /$ENV{inputText}/} END {print "$n\n"}')"
答案 1 :(得分:0)
尝试一下。在这里,我将标准错误重定向到标准输出,并且也删除了""
:-
lineNumber=$(perl -ne '{$n=$. if /$inpuTtext/} END {print '$n\n'}') 2>&1