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.
精彩评论