ce qui ne va pas avec ce script shell

market_l="${echo $1 | awk '{print tolower($0)}'}" echo $market_l 

quand je l’exécute, il me donne une erreur ci-dessous:

 ./test: market_l="${echo $1 | awk '{print tolower($0)}'}": The specified substitution is not valid for this command. 

Vouliez-vous utiliser l’opérateur $() au lieu de ${} ?

vous devriez utiliser $() pour assigner une sortie à une variable. pas ${}

 market_l="$(echo $1 | awk '{print tolower($0)}')" 

ou vous pouvez le faire avec ksh

 #!/bin/ksh typeset -l market_l market_l="$1" echo $market_l 

Autres façons de changer de cas en plus de awk , fyi

 $ echo "$1"|tr [AZ] [az] $ echo "$1"|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'