开发者

what is wrong with this shell script

market_l="${echo $1 | awk '{print tolower($0)}'}"
echo $mark开发者_C百科et_l

when i execute this its giving me an error below:

./test: market_l="${echo $1 | awk '{print tolower($0)}'}": The specified substitution is not valid for this command.


Did you mean to use the $() operator instead of ${}?


you should use $() to assign output to a variable. not ${}

market_l="$(echo $1 | awk '{print tolower($0)}')"

or you can do it with ksh

#!/bin/ksh
typeset -l market_l
market_l="$1"
echo $market_l

Other ways to change case besides awk, fyi

$ echo "$1"|tr [A-Z] [a-z]

$ echo "$1"|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'


Could be, your system uses ksh88 by default. Run you script putting the next command:

ksh93 ./test

I'm sure, this answer will not help you because has passed 10 years, but it will be useful for someone who falls into the same issue.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜