2011-11-27 35 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

相关问题