有没有一种(简单的)方法可以将行尾变量传递给 BASH 中的其他程序?请考虑以下示例:
flist=$(ls -l)
echo $flist
echo
会将所有行尾替换为空格,因此我的输出将与变量的内容不同。其他示例:
echo $flist | grep myfile.txt
此命令无法按预期工作,仅输出有关 的信息myfile.txt
。如何打印包含 的行myfile.txt
。
以下是一种解决方案:
cat << EOF | grep myfile.txt
$flist
EOF
有没有不那么丑的东西?
答案1
问题不是出在echo
,而是 shell。尝试使用双引号:
echo "$flist" | grep myfile.txt
应该可以正常工作。