- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 AWS 编写一个自动化流程,该流程需要在 bash 脚本中进行一些 JSON 处理和其他操作。我正在关注一些关于 bash 脚本的博客,我发现了这个:
a=b
附上以下说明:
There is no space on either side of the equals ( = ) sign. We also leave off the $ sign from the beginning of the variable name when setting it
这很难看,而且与其他脚本语言相比很难阅读,用户在编写 bash 脚本时很容易因为在中间留有空格而犯错。我认为每个人都喜欢编写干净易读的代码,这种限制肯定不利于代码的可读性。
你能解释一下为什么吗?高度赞赏带有示例的解释。
最佳答案
这是因为否则语法会产生歧义。考虑这个命令行:
cat = foo
这是对变量 cat
的赋值,还是使用参数“=”和“foo”运行命令 cat
?请注意,“=”和“foo”都是完全合法的文件名,因此在 cat
上运行是合理的。 Shell 语法解决了这个问题,有利于命令解释,因此为了避免这种解释,您需要省略空格。 cat =foo
也有同样的问题。
另一方面,考虑:
var= cat
命令 cat
运行时变量 var
设置为空字符串(即 var='' cat
的简写) ,或对 shell 变量 var
的赋值?同样,shell 语法有利于命令解释,因此您需要避免添加空格的诱惑。
在 shell 语法中有很多地方空格是重要的分隔符。另一个经常搞砸的地方是在测试中,如果你遗漏了 any 中的空格:
if [ "$foo" = "$bar" ]
...它会导致不同的含义,这可能会导致错误,或者可能只是默默地做了错误的事情。
我要说的是 shell 语法不允许您任意添加或删除空格以提高可读性。甚至不要尝试,你只会破坏东西。
关于bash - bash脚本中没有空格的变量赋值背后的基本原理是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56910878/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!