market_l="${echo $1 | awk '{print tolower($0)}'}"
echo $market_l
当我执行这个它给我下面的错误:什么不对这个shell脚本
./test: market_l="${echo $1 | awk '{print tolower($0)}'}": The specified substitution is not valid for this command.
market_l="${echo $1 | awk '{print tolower($0)}'}"
echo $market_l
当我执行这个它给我下面的错误:什么不对这个shell脚本
./test: market_l="${echo $1 | awk '{print tolower($0)}'}": The specified substitution is not valid for this command.
您的意思是使用$()
操盘${}
?
您应该使用$()
将输出分配给变量。不${}
market_l="$(echo $1 | awk '{print tolower($0)}')"
,或者你可以用KSH做
#!/bin/ksh
typeset -l market_l
market_l="$1"
echo $market_l
其他方式改变的情况下,除了awk
,仅供参考
$ echo "$1"|tr [A-Z] [a-z]
$ echo "$1"|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
不要忘记使用引号:'“$ 1”'。除非你特别不想,否则总是引用。 – 2010-03-30 10:21:33
实际上在这个例子中,由于echo的输出是相同的,所以它不会使用引号。但是,是的,你有权在必要时总是使用引号。 – ghostdog74 2010-03-30 10:42:32
我想转换提供的$ 1参数在执行脚本将其小写并存储在一个变量中,然后回显。 – Vijay 2010-03-30 06:57:37
我认为你是对的。感谢提示。 – Vijay 2010-03-30 06:58:41