首页 > 解决方案 > 使用 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指示?

谢谢!

标签: bashsyntax

解决方案


推荐阅读