问题描述
||
问题本质上是这样,我需要能够在我已经从/ proc / cmdline找到的行中搜索变量。然后能够切出此变量的值(在这种情况下,我要切出disktype的值)。
*应注意,这将在PXE引导环境中进行,因此大多数其他语言工具将不可用,并且变量和值在/ proc / cmdline中的显示位置可能有所不同。
所以本质上,如果我把/ proc / cmdline弄出来,我可以得到这个:
centos-workstation-x86_64/vmlinuz initrd=centos-workstation-x86_64/initrd.img locale=en_US disktype=Fresh
或这个
rhel6-workstation-x86_64/vmlinuz initrd=rhel6-workstation-x86_64/initrd.img disktype=Large locale=en_US
或任何其他变化形式,甚至为PXE设置了更多其他变量。
*说明这将是更大的kickstart文件的一部分
**对于那些可能想知道为什么这样做有用的人,我将在稍后使用kickstart指定一个case语句,该语句与在disktype中抛出的内容匹配,以确定在安装过程中要使用的partition.cfg。
解决方法
如果在[2]中正确设置了记录分隔符和字段分隔符,则很容易:
awk \'/Disktype/{print $2}\' RS=\" \" FS==
cut
并不能真正完成此任务:
tr \" \" \"\\n\" | grep Disktype | cut -f 2 -d =
您也可以使用sed
进行操作:
sed -n \'s/^.*Disktype=\\([^ ]\\+\\)/\\1/p\'