我可以将文件内容存储到shell脚本中的变量吗?

Aji*_*jit 4 shell solaris sh

假设我有一个文件file.txt,其中包含数据(比如'100').我想将此文件的内容读取到变量以供将来处理.我希望这适用于Linux和Solaris.我怎样才能做到这一点?

pyl*_*ver 8

试试这一行:

VAR=$(cat file.txt)
Run Code Online (Sandbox Code Playgroud)

要么

VAR=$(head -1 file.txt)
Run Code Online (Sandbox Code Playgroud)

编辑1:

使用Unix命令的输出来设置变量

shell脚本的最好的一点是,使用任何Unix命令生成输出并使用它来设置变量非常容易.

在这个例子中,我正在运行一个date命令并将其输出保存为我的变量的值:

#!/bin/sh
#
STARTED=`date`
sleep 5
FINISHED=`date`
#
echo "Script start time: $STARTED"
echo "Script finish time: $FINISHED"
Run Code Online (Sandbox Code Playgroud)

如果我运行这个简单的脚本,我会看到以下内容:

ubuntu$ /tmp/1.sh
Script start time: Wed May 7 04:56:51 CDT 2008
Script finish time: Wed May 7 04:56:56 CDT 2008
Run Code Online (Sandbox Code Playgroud)

几乎任何情况都可以使用相同的方法.

所以mvp的答案适用于任何unix shell:

F=`cat file.txt`
Run Code Online (Sandbox Code Playgroud)

只需尝试使用反引号`而不是'单个qoute

  • Solaris上的简单`sh`是一个相当古老的shell; 它不支持`$(...)`AFAICR,所以你必须使用``var =`...```(注意它们是反向标记).在`bash`中,你可以使用`var = $(<file.txt)`,它实际上不会启动子shell. (3认同)