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

我可以将文件内容存储到shell脚本中的变量中吗?,shell,solaris,sh,Shell,Solaris,Sh,假设我有一个文件file.txt,其中包含数据(比如“100”)。我想将此文件的内容读取到一个变量中,以备将来处理。我希望它在Linux和Solaris上都能工作。我如何才能做到这一点?这应该可以: VAR=`cat file.txt` 如果只想获取文件的第一行,请使用以下命令: VAR=`head -1 file.txt` 试试这句话: VAR=$(cat file.txt) 或 编辑1: 使用Unix命令的输出设置变量 shell脚本最好的一点是,使用任何Unix命令生成输出并使用

假设我有一个文件file.txt,其中包含数据(比如“100”)。我想将此文件的内容读取到一个变量中,以备将来处理。我希望它在Linux和Solaris上都能工作。我如何才能做到这一点?

这应该可以:

 VAR=`cat file.txt`
如果只想获取文件的第一行,请使用以下命令:

 VAR=`head -1 file.txt`
试试这句话:

VAR=$(cat file.txt)

编辑1:

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

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

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

#!/bin/sh
#
STARTED=`date`
sleep 5
FINISHED=`date`
#
echo "Script start time: $STARTED"
echo "Script finish time: $FINISHED"
如果运行此简单脚本,我会看到以下内容:

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
几乎任何情况下都可以使用相同的方法

因此,mvp的答案适用于任何unix shell:

F=`cat file.txt`

只需使用backtick
`
而不是
'
单qoute

就可以了。您是否尝试过以下方法

VAR=$(<file)

VAR=$(VAR='cat file.txt echo$VAR over outputs cat file.txt确保您使用backtick,而不是
。如果不确定,请复制并粘贴它-它确实有效我已经尝试了上述2种方法。它在solaris上不起作用。它给出语法错误您的shell解释器是什么:sh、bash、csh或ksh?solaris上的纯
sh
是一个相当旧的shell;它不起作用支持
$(…)
AFAICR,因此您必须改用
var=`…`
(注意它们是反向刻度)。在
bash
中,您可以使用
var=$(
VAR=$(<file)