首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash脚本:合并var=$(.)Var=${var%%.}线?

bash脚本:合并var=$(.)Var=${var%%.}线?
EN

Stack Overflow用户
提问于 2016-01-05 00:37:05
回答 1查看 55关注 0票数 0

是否有可能,如果是,如何将下列表达式转换为一行?

代码语言:javascript
复制
DEV=$(lsblk -no KNAME,MODEL | grep 'ModelNAME')
DEV=${DEV%%'ModelNAME'}

简单的DEV=${(lsblk -no KNAME,MODEL | grep 'ModelNAME')%%'ModelNAME'}不工作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-05 00:42:34

zsh允许您组合参数展开。巴什不知道。

对于bash或POSIX sh (它们都支持这个特定的参数扩展),需要作为两个单独的命令来完成。

尽管如此,还有其他选择可供选择。例如:

代码语言:javascript
复制
# tell awk to print first field and exit on a match
dev=$(lsblk -no KNAME,MODEL | awk '/ModelNAME/ { print $1; exit }')

...or,甚至更简单(但需要bash或其他现代ksh导数):

代码语言:javascript
复制
# read first field of first line returned by grep; _ is a placeholder for other fields
read -r dev _ < <(lsblk -no KNAME,MODEL | grep -e ModelNAME)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34602438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档