我正在尝试读取包含一行的文件。
cpu=msm8998我需要在"=“之后获取值,并将其赋值给一个变量。最简单的方法是什么?如果可能的话不使用cat
发布于 2018-12-18 00:48:22
假设此文本位于cpu.txt文件中
#! /usr/bin/env bash
CPU_FILE="cpu.txt"
CPU=`awk -F= '{ print $2 }' "$CPU_FILE"`
echo "\$CPU = $CPU"使用awk在=上拆分(即awk -F=),输出第二个字段( { print $2 }),然后将所有字段的输出存储到带有反勾框的$CPU中(如果有的话,我不确定它的正确名称)。
发布于 2018-12-18 01:03:44
使用read内置:
IFS== read name value < file
echo "${value}"read将输入分割为由IFS内部字段分隔符分隔的字段。在您的示例中,字段分隔符是=。
或者,只需https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html#index-source文件:
source file
echo "${cpu}"发布于 2018-12-18 01:10:31
如果您的输入文件就是这一行,那么您应该获取它:
$ cat input
cpu=msm8998
$ echo $cpu
$ . input
$ echo $cpu
msm8998https://stackoverflow.com/questions/53824897
复制相似问题