伯恩贝壳小写

时间:2013-01-16 22:35:08

标签: sh

有没有办法让bourne shell不关心字符串比较的情况?或者,我可以将变量转换为全部小写吗?

我试图使用带有echo的tr,但是永远不能让它覆盖我的变量。

2 个答案:

答案 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具有误导性。