Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux while循环变量读取问题_Linux_Shell - Fatal编程技术网

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个字段都必须存在,则可以检查空字符串和打印错误。请提供有关输入文件格式的更多信息。值是用制表符分隔还是用给定数量的空格分隔?给定数量的值用制表符分隔