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中的内容…编辑得太多。我想知道是什么触发了目录列表的打印。你会想检查一下——在参数扩展之后,不带引号的值会被分词,尤其是在这里,文件名扩展。啊,是的……这很有意义。我将进行编辑以增加一些清晰度。