Linux 如何在shell脚本中以cat命令格式打印echo语句? rm-rf xyz.log 回显“输入n” 阅读 x[0]=ABC x[1]=DEF x[2]=GHI y[0]=MNO y[1]=PQR y[2]=STQ z[0]=RTY z[1]=LKJ z[2]=LDF 对于((i=0;i>xyz.log 完成 o=`cat xyz.log` 回声$o
当我执行上面的脚本时,我在一行中获得所有输出,但是在xyz.log中,它是逐行打印的。我希望在echo命令中打印相同的内容。提前感谢 $/val.sh 输入n 三, ABC---MNO---RTY DEF---PQR---LKJ GHI---STQ---LDF $cat xyz.log ABC---MNO---RTY DEF---PQR---LKJLinux 如何在shell脚本中以cat命令格式打印echo语句? rm-rf xyz.log 回显“输入n” 阅读 x[0]=ABC x[1]=DEF x[2]=GHI y[0]=MNO y[1]=PQR y[2]=STQ z[0]=RTY z[1]=LKJ z[2]=LDF 对于((i=0;i>xyz.log 完成 o=`cat xyz.log` 回声$o,linux,shell,unix,awk,echo,Linux,Shell,Unix,Awk,Echo,当我执行上面的脚本时,我在一行中获得所有输出,但是在xyz.log中,它是逐行打印的。我希望在echo命令中打印相同的内容。提前感谢 $/val.sh 输入n 三, ABC---MNO---RTY DEF---PQR---LKJ GHI---STQ---LDF $cat xyz.log ABC---MNO---RTY DEF---PQR---LKJ GHI---STQ---LDF选项用于启用echo对换行符的其他实例的解释,以及对其他特殊字符的解释,如用\t表示的水平制表符。因此,例如,以下内容
GHI---STQ---LDF选项用于启用echo对换行符的其他实例的解释,以及对其他特殊字符的解释,如用\t表示的水平制表符。因此,例如,以下内容将生成格式化输出:
rm -rf xyz.log
echo "Enter n"
read n
x[0]=ABC
x[1]=DEF
x[2]=GHI
y[0]=MNO
y[1]=PQR
y[2]=STQ
z[0]=RTY
z[1]=LKJ
z[2]=LDF
for (( i=0; i<n; ++i ))
do
echo "${x[i]} ---- ${y[i]} ---- ${z[i]}" >> xyz.log
done
o=`cat xyz.log`
echo $o
因此,请使用echo命令,如:
echo -e "\n Projects: \n\n\tplan \n\tcode \n\ttest\n"
它将实现这一技巧,并为您提供所需的答案。使用-e选项可启用echo对换行符的其他实例的解释,以及对其他特殊字符的解释,如水平制表符,它由\t表示。因此,例如,以下内容将生成一个表单格式化输出:
rm -rf xyz.log
echo "Enter n"
read n
x[0]=ABC
x[1]=DEF
x[2]=GHI
y[0]=MNO
y[1]=PQR
y[2]=STQ
z[0]=RTY
z[1]=LKJ
z[2]=LDF
for (( i=0; i<n; ++i ))
do
echo "${x[i]} ---- ${y[i]} ---- ${z[i]}" >> xyz.log
done
o=`cat xyz.log`
echo $o
因此,请使用echo命令,如:
echo -e "\n Projects: \n\n\tplan \n\tcode \n\ttest\n"
它会起作用,并会给你你想要的答案。使用
echo
上的-n
选项意味着“不要像往常一样在行尾写换行符。”它记录在bash
手册页中
我还建议只在文件末尾添加一个换行符,即echo>>xyz.log
OUTFILE=“xyz.log”
`rm-rf“$OUTFILE”`
回显“输入n”
阅读
x[0]=ABC
x[1]=DEF
x[2]=GHI
y[0]=MNO
y[1]=PQR
y[2]=STQ
z[0]=RTY
z[1]=LKJ
z[2]=LDF
对于((i=0;i>“$OUTFILE”
完成
o=`cat“$OUTFILE”`
回声$o
使用echo
-n
上的-n
选项意味着“不要像往常一样在行尾写换行符。”这在bash
手册页中有说明
我还建议只在文件末尾添加一个换行符,即echo>>xyz.log
OUTFILE=“xyz.log”
`rm-rf“$OUTFILE”`
回显“输入n”
阅读
x[0]=ABC
x[1]=DEF
x[2]=GHI
y[0]=MNO
y[1]=PQR
y[2]=STQ
z[0]=RTY
z[1]=LKJ
z[2]=LDF
对于((i=0;i>“$OUTFILE”
完成
o=`cat“$OUTFILE”`
回声$o
最后一行缺少引号:
`rm -rf "$OUTFILE"`
echo "Enter n"
read n
x[0]=ABC
x[1]=DEF
x[2]=GHI
y[0]=MNO
y[1]=PQR
y[2]=STQ
z[0]=RTY
z[1]=LKJ
z[2]=LDF
for (( i=0; i<n; ++i )) ; do
echo -n "${x[i]} ---- ${y[i]} ---- ${z[i]}" >> "$OUTFILE"
done
o=`cat "$OUTFILE"`
echo $o
添加引号将允许shell准确地使用变量的内容。否则,您将要求shell执行分词,其中任何空格序列(包括换行符)都将替换为单个空格(默认情况下)
经验法则:总是引用“$variables”
,除非您特别不想引用它们
而且,这是错误的
o=`cat xyz.log`
echo "$o"
# ---^--^
您在子shell中执行删除,然后将输出用作命令
`rm -rf xyz.log`
最后一行中缺少引号:
`rm -rf "$OUTFILE"`
echo "Enter n"
read n
x[0]=ABC
x[1]=DEF
x[2]=GHI
y[0]=MNO
y[1]=PQR
y[2]=STQ
z[0]=RTY
z[1]=LKJ
z[2]=LDF
for (( i=0; i<n; ++i )) ; do
echo -n "${x[i]} ---- ${y[i]} ---- ${z[i]}" >> "$OUTFILE"
done
o=`cat "$OUTFILE"`
echo $o
添加引号将允许shell准确地使用变量的内容。否则,您将要求shell执行分词,其中任何空格序列(包括换行符)都将替换为单个空格(默认情况下)
经验法则:总是引用“$variables”
,除非您特别不想引用它们
而且,这是错误的
o=`cat xyz.log`
echo "$o"
# ---^--^
您在子shell中执行删除,然后将输出用作命令
`rm -rf xyz.log`
for((i=0;i>xyz.log done o=
cat xyz.log`echo$o`我更改了它,但仍然得到相同的输出。**$./val.sh**输入n3 ABC---MNO---RTY DEF---PQR---LKJ GHI---STQ---ldfn在xyz.log中,输出之间有空行,但我希望它在程序结束时打印在输出中。((i=0;i>xyz.log done o=
cat xyz.log`echo$o`我更改了它,但仍然得到相同的输出。**$./val.sh**输入n3 ABC---MNO---RTY DEF---PQR---LKJ GHI---STQ---ldfn在xyz.log中,输出之间有空行,但我希望在程序结束时在输出中打印出来。哈,我不确定这是怎么回事我会用修改后的代码编辑答案。对不起,我不知道这是怎么发生的。我会用修改后的代码编辑答案。对不起,混合。+ 1,因为这是你的具体问题的原因。此外,去掉RM命令行周围的蜱,并考虑使用<代码> $(命令)。“/CODE”,而不是BeTICK符号。+ 1,因为这是你的特定问题的原因。此外,去掉RM命令行周围的蜱,并考虑使用<代码> $(命令)< /代码>而不是回溯标记。