シェルは引数を解析できません。

シェルは引数を解析できません。

以下のシェルスクリプトにパラメータを渡しています。./script.sh pan.tgz 192.168.3.1 ABCXYZ

#!/bin/sh
echo $1 $2 $3
file=$1
host=$2
key=$3

curl -kv -o ${file} 'https://${host}/api/?type=export&category=device-state&key=${key}'

しかし、エラーが発生しますカール: (6) ホストを解決できません: $host

答え1

これ高度なバッシュスクリプトガイド第5章で述べたように、一重引用符の中では特別な意味がオフになるため、$変数の拡張は行われません。curlパラメータを" ... "一重引用符ではなく二重引用符で囲むことができます。

関連情報