2012-10-01 30 views
1

如何在csh中轉義$?裏面的「」我嘗試做這個BU不能逃脫$

別名e「的回聲\ !: 2- $」

這工作,但還不足以滿足我的需求

別名è回聲\! :2- $

回答

4

使用單引號,而不是試圖 - alias e 'echo \!:2-$'。您還需要反斜槓轉義歷史替換。

+0

這工作得很好我只是想指出療法沒有解決逃脫內 「」 $符號。 –

+0

@PabloKarlsson - 基本上是單引號和雙引號之間的區別。後者允許替換,如變量擴展和特殊字符,前者禁用(大部分)替換。 –

+0

我有一個表達式,如: f = some/path; ssh foo @ bar「$ f | thing && echo Success || echo失敗,退出代碼$?」 我需要$ f的雙引號,但我想要$?傳遞給遠程主機進行評估。我試過\ $ ?,但那不行。 csh有不同的方式來轉義$嗎? – bobpaul

0

對這個老問題建議的答案是不正確的。

可以可以在CSH和其他shell中完成,不管引用的類型如何,但是如果使用它們,對於某些shell,您需要先退出雙引號。

以下應該工作在(幾乎)所有的炮彈,所以我用它的簡單性。我使用反引號來獲取命令的輸出,因爲它更簡單,並避免需要添加額外的「$」符號(更現代的風格)。請注意「$」的不同用途,以實際獲取變量和文字(爲了方便起見,內部和外部單引號)。

這應該適用於大多數炮彈。

示例命令:

echo "My terminal is $term, first file found in /dev is </dev/`ls /dev | head -n 1`>, the 
dollar symbol is '"`echo '$'`"', and a newspaper costs "`echo '$'`"2.50." 

OUTPUT:

My terminal is xterm, first file found in /dev is </dev/acpi>, the dollar symbol 
is '$', and a newspaper costs $2.50.