是否有可能,如果是,如何将下列表达式转换为一行?
DEV=$(lsblk -no KNAME,MODEL | grep 'ModelNAME')
DEV=${DEV%%'ModelNAME'}简单的DEV=${(lsblk -no KNAME,MODEL | grep 'ModelNAME')%%'ModelNAME'}不工作
发布于 2016-01-05 00:42:34
zsh允许您组合参数展开。巴什不知道。
对于bash或POSIX sh (它们都支持这个特定的参数扩展),需要作为两个单独的命令来完成。
尽管如此,还有其他选择可供选择。例如:
# tell awk to print first field and exit on a match
dev=$(lsblk -no KNAME,MODEL | awk '/ModelNAME/ { print $1; exit }')...or,甚至更简单(但需要bash或其他现代ksh导数):
# 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)https://stackoverflow.com/questions/34602438
复制相似问题