2011-11-27 34 views

回答

2

試試這個

var="$(cut [email protected] -f1 tmp2)" 

$(..)是調用命令替換。 Cmd替換也可以使用每個JanVorcak解決方案的`...`對執行,但是該語法被認爲不推薦使用,除非您希望使用舊的供應商Unix,例如Solaris和bourne shell。順便說一下,你說這個var現在等於'cat file.txt'。您必須使用錯誤的字符,很可能是單引號char ',而不是反引號字符「`」。

正如你的標題所說,你試圖'把文件的內容放入一個變量'中,我用「...」來包圍剪切的輸出。現在var的值是cut ...的完整輸出。

我希望這會有所幫助。

+0

謝謝,我不知道棄用+1,btw @shellter,請你向我解釋爲什麼要使用'cut -d @ -f1 tmp2' '貓tmp2'?它有一些特殊用途嗎?謝謝 –

+0

試試這個。 'echo'fld1 @ fld2 \ nfld3 @ fld4 \ n'|剪切-d @ -f1'。你應該在單獨的行上獲得fld1 fld3。如果tmp2包含相同的文本,則會同時完成兩行。如果不清楚,我可以編輯我的答案,這樣會更容易理解。此外,反向票據在1995年被認爲是不贊成使用的:http://www.amazon.com/New-KornShell-Command-Programming-Language/dp/0131827006/ref=sr_1_3?s=books&ie=UTF8&qid=1322430885&sr=1-3: - )感謝你的興趣和祝你好運! – shellter

+0

非常感謝!好的解釋 – boaz

4

如果我理解你,你想加載一個文件到像這樣的變量?

v=`cat file.txt` 
+0

你理解我的權利,但是當我正在做你所寫的東西時,把字符串cat file.txt寫入v ... – boaz

+0

你有沒有使用過'cat file.txt'? –

+2

@ user1067642您可能使用了錯誤的字符。它是波浪號下面的那個('〜')。 – Staven

6

試試這個

var=`cut [email protected] -f1 tmp2` 

或者這

var=$(cut [email protected] -f1 tmp2) 
+1

第二個是更好的方法,因爲你可以將它們嵌套在一起。 –

+0

@DanD。引用/擴展的行爲就像在一個普通的命令行 – sehe

0

如果你只是想該文件的內容,用bash,那麼你會寫

var=$(< filename) 

documentation

相關問題