linux shell脚本中的〜$是什么

时间:2016-07-13 06:22:45

标签: shell sh

我在shell脚本中看到了以下语句

if [ "$file" = "conf" ] || echo $file | grep -q '~$'; then

什么是~$?我知道其他美元符号,例如$1 $2 $@ $$ $*,但从未见过~$

2 个答案:

答案 0 :(得分:3)

'〜$' grep中的模式匹配以'〜'结尾的所有行。 因此,如果文件名以if结尾,则~部分将被执行。 实际上整个echo $file | grep -q '~$'意味着: 如果文件名以〜结尾,请尝试匹配,但不要打印匹配的结果。 如果匹配,执行if部分。

'〜$'确实有特殊意义。即。结束〜

答案 1 :(得分:0)

~$是一个由两个字符组成的序列,在bash中没有特别的错误。

毕竟为什么你应该对~$中的grep -q '~$'感到困扰。

很明显~$只是制作一种模式。

关于

  

什么是$ then

它有特殊含义

  • 在变量上下文中使用时,请说$var
  • 在正则表达式中使用时stuff$表示匹配以stuff结尾的行。

请检查[ Special Parameters ]