有没有办法让bourne shell不关心字符串比较的情况?或者,我可以将变量转换为全部小写吗?
我试图使用带有echo的tr,但是永远不能让它覆盖我的变量。
答案 0 :(得分:5)
我刚试过
MYVAR="This is a Test."
MYVAR=$(echo $MYVAR | tr '[:upper:]' '[:lower:]')
echo $MYVAR
,结果是
this is a test.
答案 1 :(得分:2)
请注意,给出的答案是针对 bash ,而不是针对不知道的Bourne shell $(...)构造。 所有tr实现中都不存在 tr 类 upper , lower 等,这取决于您所在的平台(在Solaris上)将使用/ usr / xpg4 / bin / tr而不是/ usr / bin / tr) 具有经典tr 答案的正确 Bourne shell是:
MYVAR=`echo "$MYVAR" | tr '[A-Z]' '[a-z]'`
既然你对给定的答案感到满意:很好,对于大多数读者而言,这可能是好的,因为无处不在。
你应该正确标记问题:bourne-shell具有误导性。