我很难理解以下代码:
lastline=$(tail -n 1 $bc; echo x); lastline=${lastline%x}
if [ "${lastline: -1}" != $'\n' ]; then
echo >> $bc
fi
我想这都是关于在文件 $bc
中添加 \n
如果最后一行还不是的话。但是 echo x
和 laSTLine%x
和 ${laSTLine: -1}
对我来说根本没有意义。我错过了什么?
文件$bc
仅包含如下行:
Sample1,ATAGFAT
最佳答案
这基本上是检查您的文件 $bc
是否不以换行符结尾,然后在其中添加换行符。
tail -n 1 $bc; echo x
- 打印文件$bc
的最后一行,然后打印文字x
${laSTLine%x)
- 从文件数据中删除x
$laSTLine
"${laSTLine: -1}"
- 从变量$laSTLine
读取最后一个字符"${laSTLine: -1}"!= $'\n'
- 将最后一个字符与换行符进行比较echo >> $bc
如果上述检查失败则添加换行符
关于Bash 添加换行符(如果缺少),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618582/