Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 这个shell脚本有什么问题_Unix_Shell_Ksh - Fatal编程技术网

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的输出是相同的。但是,是的,你总是在必要的时候使用引号是正确的。