我看到下面的语句在shell脚本
if [ "$file" = "conf" ] || echo $file | grep -q '~$'; then
什么是~$
?我知道$1 $2 [email protected] $$ $*
等其他美元符号,但从未见过类似~$
的东西。
我看到下面的语句在shell脚本
if [ "$file" = "conf" ] || echo $file | grep -q '~$'; then
什么是~$
?我知道$1 $2 [email protected] $$ $*
等其他美元符号,但从未见过类似~$
的东西。
grep中'〜$'模式匹配所有以'〜'结尾的行。 因此,如果文件名以~
结尾,则将执行if
部分。 实际上整个echo $file | grep -q '~$'
表示: 如果文件名以〜结尾,请尝试匹配,但不要打印匹配结果。 如果匹配,则执行if部分。
'〜$'确实有特殊的含义。即。以〜
不错,忘记了这个微妙的方面。 – sjsam
~$
是一个由两个字符组成的序列,在bash
中没有特别要求。
毕竟你为什么要打扰~$
在grep -q '~$'
。
这很明显,~$
只是一个模式。
关于
什么是$然后
它具有特殊的意义
$var
。stuff$
,匹配以stuff
结尾的行。
结尾''〜$''是由两个字符,'〜'和'$'组成的字符串。 – melpomene
我明白了。谢谢。 $ 1是第一个参数..类似什么是$? –
你有没有试过阅读你的shell的手册? – melpomene