Linux while循环变量读取问题
我有一个文本文件Linux while循环变量读取问题,linux,shell,Linux,Shell,我有一个文本文件a.txt如下: 1 1 a 2 b 4 4 d 现在我读取该文本文件并将其输入while循环: cat a.txt | while read k l o do echo " ${k} ${l} ${o} " if [ "${k}" == "${l}" ]; then echo " success ; X: ${k} Y : ${l} Z : ${o} " else
a.txt
如下:
1 1 a
2 b
4 4 d
现在我读取该文本文件并将其输入while
循环:
cat a.txt | while read k l o
do
echo " ${k} ${l} ${o} "
if [ "${k}" == "${l}" ]; then
echo " success ; X: ${k} Y : ${l} Z : ${o} "
else
echo " failed ; X: ${k} Y : ${l} Z : ${o} "
fi
done
在我的文本文件中,第2行的第一个值为空。这就是为什么我把y值取到x,z值取到y
如何处理这些空值并将所有值打印到正确的位置?为什么不为空x值插入0?
无论如何,您需要3个值/bin/sh read命令将第一个值指定给第一个名称。当问题实际上是关于Linux shell脚本时,您发布的问题几乎无法理解,并且错误地标记了
PowerShell
。这次我为你重新措辞并重新编排了问题的格式。从现在起,请在你的问题上多做些努力。如果您不关心自己的问题,为什么其他人会这样做?您无法检查特定字段是否为空。如果所有3个字段都必须存在,则可以检查空字符串和打印错误。请提供有关输入文件格式的更多信息。值是用制表符分隔还是用给定数量的空格分隔?给定数量的值用制表符分隔