bash在变量中保存值

bash在变量中保存值,bash,shell,Bash,Shell,给定:file:files.txt,带有: sara.gap sara.gao pe.gap pe.gao 我只想在我的bash脚本中使用f=sara,因为我以后在脚本中需要f。所以我试着:获取第一行,第二个参数,删除.gao并保存在f中 f=sed -ne '1p' files.txt |cut -d " " -f2 |sed 's/.gao//g' 但是没有工作,请帮帮我 您只需要反勾号: f=`head -1 files.txt | cut -d " " -f2 | sed 's/.

给定:file:files.txt,带有:

sara.gap sara.gao
pe.gap pe.gao
我只想在我的bash脚本中使用f=sara,因为我以后在脚本中需要f。所以我试着:获取第一行,第二个参数,删除.gao并保存在f中

f=sed -ne '1p' files.txt |cut -d " " -f2 |sed 's/.gao//g' 

但是没有工作,请帮帮我

您只需要反勾号:

f=`head -1 files.txt | cut -d " " -f2 | sed 's/.gao//g'`
我愿意

哦,第二个论点是:

read junk f junk < files.txt
f=${f%*.gao}
这完全在bash中实现:-

如果要使用命令的输出来设置变量,请使用。格式为v=$command。您也可以使用反勾号,例如v=`command`,但它已被$。。。形式

你的命令是:

f=$(sed -ne '1p' files.txt |cut -d " " -f2 |sed 's/.gao//g')
echo $f
印刷品

sara
你是说这个

f="sed -ne '1p' files.txt |cut -d ' ' -f2 |sed 's/.gao//g'"
eval "$f"
输出:

sara
您也可以使用awk


谢谢,但我有在f洞命令,而不是地图字符串在这里莎拉?很抱歉,我不明白你的评论。你能试着重新措辞吗?别误会我的意思,但你应该努力学习英语,要理解你说的话真的很难。至少尝试一些拼写检查sed 1q文件将比sed-n 1p文件更有效,因为它将在第一行之后退出,而后者必须读取整个文件。
sara
f=$(awk 'NR==1{gsub(/\.gao/,"",$2);print $2;exit}' file)