我试图读取一个文件,其中包含灰壳中的单个数字。这样做的bash方式如何将ash中的文件内容读入参数?
ARG=`cat /tmp/tempfile`
不起作用,我得到的是ARG不会在这行代码后面持有任何东西。
我试图读取一个文件,其中包含灰壳中的单个数字。这样做的bash方式如何将ash中的文件内容读入参数?
ARG=`cat /tmp/tempfile`
不起作用,我得到的是ARG不会在这行代码后面持有任何东西。
尝试用引号包围它具有在第一个换行符就没有停止过:
ARG="`cat /tmp/tempfile`"
或
ARG="$(cat /tmp/tempfile)"
或
read ARG </tmp/tempfile #only 1st line will be read
与UUOC的示例可能无法正常工作,因为(在大多数shell中)读取将在子shell中运行。但重定向读取将在任何兼容posix的shell中工作。 –
@William oops,非常非常正确,当我通常在其他脚本中发现它时,我无法相信我会为此而堕落^^我编辑了我的答案。谢谢! –
这应该只是罚款。你确定这个文件不是空的吗? –
我敢肯定,当我打印这个值时:echo“stored value = $ ARG”在“=”之后什么也没有。另外当我在bash上运行这段代码时,它工作正常。 – bergo
您能否给我们提供周围的代码行,以便我们检查它是否来自其他原因(例如:在子shell中读取?)。并确保=“in var = value”中没有空格。尝试查明pb:写入'cat/tmp/tempfile;阅读THEARG tmp/tempfile;回声“THEARG = $ THEARG”:想法是确保文件可读,只有1行,并将ARG改为THEARG,以确保它不是灰中的保留字。 –