bash - 使用 bash 跳过文件中的注释
问题描述
我只是在学习 BASH 的(非常)基础知识。
while IFS= read -r line; do
...
done
当需要从文件中跳过注释(比如#)行时,上述内容很有帮助。我遇到的上述一种特定实现就是这样做的,但是我不明白。发布它的人没有对命令提供任何解释(也许它们确实非常简单)。我一直在寻找并找到了不那么神秘的解决方案,但我相信了解以下内容对我来说非常好:
while read -r line; do
[[ $line = \#* ]] && continue
done < "$file"
我的直觉是$line = \#*
检查变量行的内容,如果它以 # 开头(# 是一个特殊字符,因此需要\
),就会做一些事情。* 表示在最初的 # 之后可能会出现任何内容。就像$rm -r *.pdf
说的那样。
但为什么 [] ?为什么要加倍 [ [] ] ?
另外,只是为了检查一下:BASH 在代码排列方面是 python 和 c++ 的组合吗?每条指令都应该从一个新行开始,但是如果我们想在同一行有 2 条指令,它们需要用 ; 分隔。(因此模仿 c/c++)?因此... line; do
指示?
谢谢!