2014-04-03 80 views
0

此問題涉及Linux中的tcsh腳本。假設我想讓用戶輸入用戶名和密碼,然後讓腳本檢查它們。如果用戶在他的密碼中有一個大括號{},則該腳本根本不起作用:使用大括號{作爲tcsh Linux腳本的輸入

Missing}。

有沒有辦法解決這個問題?無論如何,是否有辦法啓動腳本,以便從內部處理花括號?

謝謝,保利

回答

1

假設你正在閱讀輸入與< $,報價替代:

set password = $<:q 
1

感謝所有觀衆和Dave錫尼什回答。

答案是:

如果您使用$ argv,則會失敗。

如果您使用「$ argv」,它將起作用。

所以,如果一個參數可以包含一個花括號{然後使用雙引號來包裝$ argv以正確讀取它。

0

在CSH,2單引號可以被用來保護(逃逸)大括號。您可能需要一個雙引號(「),當您迴應變量:

set a=''{'' 
echo "$a" 

如果您在腳本中使用大括號(或括號[]),你可以回顯引號內聯合()和轉義括號:

set b = " COMMANDS `echo ''{''` MORE COMMANDS `echo ''}''` " 
echo "$b"