这个shell脚本有什么问题

时间:2010-03-30 06:52:20

标签: unix shell ksh

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

当我执行此操作时,它会给我一个错误:

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

3 个答案:

答案 0 :(得分:2)

您应该使用$()将输出分配给变量。不是${}

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

或者你可以用ksh

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

awk之外更改案例的其他方式,fyi

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

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

答案 1 :(得分:1)

您的意思是使用$()运算符代替${}吗?

答案 2 :(得分:0)

可能是,您的系统默认情况下使用ksh88。运行脚本,输入下一条命令:

ksh93 ./test

我敢肯定,这个答案对您没有帮助,因为已经过去了10年,但是对于遇到相同问题的人来说将很有用。