2016-07-13 116 views
0

我看到下面的語句在shell腳本

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

什麼是~$?我知道$1 $2 [email protected] $$ $*等其他美元符號,但從未見過類似~$的東西。

+1

結尾''〜$''是由兩個字符,'〜'和'$'組成的字符串。 – melpomene

+0

我明白了。謝謝。 $ 1是第一個參數..類似什麼是$? –

+0

你有沒有試過閱讀你的shell的手冊? – melpomene

回答

3

grep中'〜$'模式匹配所有以'〜'結尾的行。 因此,如果文件名以~結尾,則將執行if部分。 實際上整個echo $file | grep -q '~$'表示: 如果文件名以〜結尾,請嘗試匹配,但不要打印匹配結果。 如果匹配,則執行if部分。

'〜$'確實有特殊的含義。即。以〜

+0

不錯,忘記了這個微妙的方面。 – sjsam

0

~$是一個由兩個字符組成的序列,在bash中沒有特別要求。

畢竟你爲什麼要打擾~$grep -q '~$'

這很明顯,~$只是一個模式。

關於

什麼是$然後

它具有特殊的意義

  • 變量的環境中使用時,說$var
  • 在正則表達式中使用時說stuff$,匹配以stuff結尾的行。

請檢查[ Special Parameters ]

+0

謝謝。 $ 1是第一個參數..類似什麼是$? –

+0

爲什麼downvote爲? – sjsam

+0

我不確定是誰給的。 –