我看到下面的語句在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