假设我有一个文件file.txt,其中包含数据(比如“100”)。我想将此文件的内容读入一个变量以供将来处理。我希望它可以在 Linux 和 Solaris 上运行。我怎样才能做到这一点?
问问题
16692 次
3 回答
8
试试这条线:
VAR=$(cat file.txt)
或者
VAR=$(head -1 file.txt)
编辑1:
使用 Unix 命令的输出来设置变量
关于 shell 脚本最好的事情之一是使用任何 Unix 命令来生成输出并使用它来设置变量非常容易。
在此示例中,我正在运行一个日期命令并将其输出保存为我的变量的值:
#!/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`
只需尝试使用反引号`
而不是'
单引号
于 2013-04-13T05:23:30.120 回答
4
这应该有效:
VAR=`cat file.txt`
如果您只想获取文件的第一行,请使用以下命令:
VAR=`head -1 file.txt`
于 2013-04-13T05:00:54.723 回答
3
您是否尝试过以下操作
VAR=$(<file)
当我需要将两行文件中的第二行作为变量存储在 bash 中时,它起作用了。
于 2014-01-24T22:42:45.467 回答