что не так с этим сценарием оболочки - PullRequest
0 голосов
/ 30 марта 2010
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.

Ответы [ 2 ]

2 голосов
/ 30 марта 2010

Вы должны использовать $(), чтобы назначить вывод переменной. не ${}

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 голос
/ 30 марта 2010

Вы хотели использовать оператор $() вместо ${}?

...