2013-01-09 86 views
1

我试图读取一个文件,其中包含灰壳中的单个数字。这样做的bash方式如何将ash中的文件内容读入参数?

ARG=`cat /tmp/tempfile` 

不起作用,我得到的是ARG不会在这行代码后面持有任何东西。

+0

这应该只是罚款。你确定这个文件不是空的吗? –

+0

我敢肯定,当我打印这个值时:echo“stored value = $ ARG”在“=”之后什么也没有。另外当我在bash上运行这段代码时,它工作正常。 – bergo

+0

您能否给我们提供周围的代码行,以便我们检查它是否来自其他原因(例如:在子shell中读取?)。并确保=“in var = value”中没有空格。尝试查明pb:写入'cat/tmp/tempfile;阅读THEARG

回答

0

尝试用引号包围它具有在第一个换行符就没有停止过:

ARG="`cat /tmp/tempfile`" 

ARG="$(cat /tmp/tempfile)" 

read ARG </tmp/tempfile #only 1st line will be read 
+0

与UUOC的示例可能无法正常工作,因为(在大多数shell中)读取将在子shell中运行。但重定向读取将在任何兼容posix的shell中工作。 –

+0

@William oops,非常非常正确,当我通常在其他脚本中发现它时,我无法相信我会为此而堕落^^我编辑了我的答案。谢谢! –

相关问题