Bash:如何打印字符串/*

Bash:如何打印字符串/*,bash,Bash,我需要读取一个文件,并按原样打印出大部分行。我是这样做的: while read line; do do stuff if line meets requirements otherwise print it as is to output file like so: echo $line >> $ done <<< "$(cat "$SOURCE_TESTBENCH")" 它作为/中的文件夹列表打印出来。事实上,这个简单的代码片段并没有按预期工作:

我需要读取一个文件,并按原样打印出大部分行。我是这样做的:

while read line; do
  do stuff if line meets requirements 
  otherwise print it as is to output file like so:
  echo $line >> $
done <<< "$(cat "$SOURCE_TESTBENCH")"
它作为/中的文件夹列表打印出来。事实上,这个简单的代码片段并没有按预期工作:

line=/*
echo $line
它不是像我希望的那样打印/*而是打印目录列表

如何才能像打印原始文件一样打印读取行?

快速指南:

  • echo$var
    应该打印出变量的内部内容

  • echo'$var'
    将准确打印出单引号内的内容

  • echo“$var”
    将准确打印出变量中包含的内容(无需执行)

但是,不带引号的样式
echo$var
会受到文件名扩展和分词的影响,而
echo“$var”
会抑制这种情况

因此,根据您的需要,echo“$var”肯定是安全的。

快速指南:

  • echo$var
    应该打印出变量的内部内容

  • echo'$var'
    将准确打印出单引号内的内容

  • echo“$var”
    将准确打印出变量中包含的内容(无需执行)

但是,不带引号的样式
echo$var
会受到文件名扩展和分词的影响,而
echo“$var”
会抑制这种情况


因此,根据您的需要,
echo“$var”
肯定是安全的。

要打印包含变量内容的字符串,请使用
printf

printf '%s\n' "$line"
\n
附加了一个换行符,这当然是可选的


围绕参数展开的常规规则适用。始终在变量周围使用双引号。

要打印包含变量内容的字符串,请使用
printf

printf '%s\n' "$line"
\n
附加了一个换行符,这当然是可选的


围绕参数展开的常规规则适用。始终在变量周围使用双引号。

在变量周围使用双引号:
echo“$line”
。是否尝试过,
echo“$line”
?当简单的输入重定向
<“$SOURCE\u TESTBENCH”
合适时,不要使用here字符串。请参阅在IFS=read-r line时读取文件中显示的行:
;做done
在变量周围使用双引号:
echo“$line”
。是否尝试过,
echo“$line”
?当简单的输入重定向
<“$SOURCE\u TESTBENCH”
合适时,不要使用here字符串。请参阅读取与文件中显示的行完全相同的行:
而IFS=read-r line;做完成
echo$var
将不会执行varMy bad中的内容…编辑得太多。我想知道是什么触发了目录列表的打印。你会想检查一下——在参数扩展之后,不带引号的值会被分词,尤其是在这里,文件名扩展。啊,是的……这很有意义。我将进行编辑以增加一些清晰度。
echo$var
不会执行varMy bad中的内容…编辑得太多。我想知道是什么触发了目录列表的打印。你会想检查一下——在参数扩展之后,不带引号的值会被分词,尤其是在这里,文件名扩展。啊,是的……这很有意义。我将进行编辑以增加一些清晰度。