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.
答案 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年,但是对于遇到相同问题的人来说将很有用。