Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何读取文件并将其重定向到变量?_Linux_Shell_Scripting - Fatal编程技术网

Linux 如何读取文件并将其重定向到变量?

Linux 如何读取文件并将其重定向到变量?,linux,shell,scripting,Linux,Shell,Scripting,我有一个写有单词的文件。我希望我的脚本将该单词放入变量中 我该怎么做 var="`cat /path/to/file`" 这是最简单的方法。注意文件中的换行符 var="`head -1 /path/to/file`" 这只会得到第一行,而且永远不会包含换行。以百万种方式 最简单的可能是 my_var=$(cat my_file) 如果您使用bash,并且希望变得更加敏捷,那么可以使用bash4的mapfile,它将整个文件放入一个数组变量中,每个单元格一行 mapfile my_var

我有一个写有单词的文件。我希望我的脚本将该单词放入变量中

我该怎么做

var="`cat /path/to/file`"
这是最简单的方法。注意文件中的换行符

var="`head -1 /path/to/file`"

这只会得到第一行,而且永远不会包含换行。

以百万种方式

最简单的可能是

my_var=$(cat my_file)
如果您使用bash,并且希望变得更加敏捷,那么可以使用bash4的mapfile,它将整个文件放入一个数组变量中,每个单元格一行

mapfile my_var < my_file
mapfile my\u var
我认为它会剥离新行,但无论如何,它是这样的:

variable=$(cat filename)

我认为最简单的方法是

$ myvar=`cat file`

最简单的方法可能是:

var=$(< file)
var=$(

这不会创建新进程。

既然shell脚本中允许在
=
前后间隔是什么时候?@nightcracker抱歉,brainfart,我在看到您的评论之前已经更正了它。换行符将使第一部分尝试执行,但在命令未找到时失败错误使用var=$(cat文件| tr-d'\n')删除所有新行,包括任何尾随行ones@Jonathan不,它将有一个文件nammed“log”,并且
$x=“`cat log`”
会导致
=2:command not found
不需要导出变量,等号周围的空格将不起作用。它只会删除最后一行换行符。如果您似乎要删除其他换行符,那是因为您没有在输出中引用变量
echo$variable
vs.
echo“$variable”
这在Bash和其他高级shell中有效,但在Bourne shell中无效。不跨平台。。。不会在sh中工作看到2018年有人/任何东西仍然使用非bash sh吗?可能是Dick Tracy的手表??警告:在“此解决方案在linux上对‘endline’字符进行转换”之前没有空格。