Unix 这个shell脚本有什么问题
当我执行此操作时,会出现以下错误:Unix 这个shell脚本有什么问题,unix,shell,ksh,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 t
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.
或者你可以用ksh来做
market_l="$(echo $1 | awk '{print tolower($0)}')"
除awk之外的其他更改案例的方法,仅供参考
#!/bin/ksh
typeset -l market_l
market_l="$1"
echo $market_l
您应该使用$()
将输出分配给变量。非${}
./test: market_l="${echo $1 | awk '{print tolower($0)}'}": The specified substitution is not valid for this command.
或者你可以用ksh来做
market_l="$(echo $1 | awk '{print tolower($0)}')"
除awk之外的其他更改案例的方法,仅供参考
#!/bin/ksh
typeset -l market_l
market_l="$1"
echo $market_l
可能是,您的系统默认使用ksh88。运行脚本,放入下一个命令:
$ echo "$1"|tr [A-Z] [a-z]
$ echo "$1"|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
我敢肯定,这个答案对你没有帮助,因为已经过去了10年,但它对遇到同样问题的人来说很有用。可能是,你的系统默认使用ksh88。运行脚本,放入下一个命令:
$ echo "$1"|tr [A-Z] [a-z]
$ echo "$1"|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
我相信这个答案对你没有帮助因为已经过去了10年,但是,对于遇到相同问题的人来说,它会很有用。我想将执行脚本时提供的$1参数转换为小写,并将其存储在变量中,然后进行回显。我想将执行脚本时提供的$1参数转换为小写,并将其存储在变量中,然后进行回显。不要忘记使用引号:
“$1”
。除非您特别不想引用,否则请始终使用引号。实际上,在示例中,不使用引号是可以的,因为echo的输出是相同的。但是,在必要的时候总是使用引号是正确的。不要忘记使用引号:“$1”
。除非您特别不想引用,否则请始终使用引号。实际上,在示例中,不使用引号是可以的,因为echo的输出是相同的。但是,是的,你总是在必要的时候使用引号是正确的。