所以我可以很容易地在bash中做这种事情,使用类似的东西:
HOSTNAME=`hostname -s`
SHORTHOST=${HOSTNAME%??}
HOST=$( echo "$SHORTHOST" | tr -s '[:upper:]' '[:lower:]' )
可能有更好的方法可以做到这一点,但确实有效。
真正的问题是,是否有办法在spec文件的变量中设置它?
或者我应该在%post中使用这些东西?
答案 0 :(得分:2)
此问题已标记为retrieveList()
。
如果您实际使用bash,则已定义bash
。要将其转换为小写,只需使用HOSTNAME
因此,以小写形式获得SHORTHOST:
${HOSTNAME,,}
如果我们不在bash下运行,那么我们必须使用一些实用程序转换为小写。虽然SHORTHOST=${HOSTNAME%??}
echo "${SHORTHOST,,}"
可以广泛使用,但tr
具有保护unicode安全的优势:
sed
或者,将所有内容放在一起用于非bash shell:
HOST="$(echo "${shorthost}" | sed 's/.*/\L&/')"
如果您使用的是早于版本4的bash(这意味着Mac OSX),则使用非bash方法。
答案 1 :(得分:0)
您可以使用%()
运行bash命令,也可以使用rpmbuild
在bash中计算的变量的脚本启动--define
。两者都有优点和缺点。