我正在试图找出创建此case
语句。我要做的是映射我的输入参数$1
,它必须是3个选项之一,然后映射到主机名。我的命令失败了。如何将变量赋值给?这样做的最佳方式是什么?
执行:
./test.sh cluster1
示例:
#!/bin/bash
ENDPOINT="$1"
SCH="$2"
case $ENDPOINT in
"cluster1") $HOST="myhost1.abcde.us-west-1.amazonaws.com";;
"cluster2") $HOST="myhost2.abcde.us-west-1.amazonaws.com";;
"cluster3") $HOST="myhost3.abcde.us-west-1.amazonaws.com";;
esac
psql $HOST -U myuser -d $SCH -p 5439 << EOF
获取错误:
/test.sh: line 18: =myhost1.abcde.us-west-1.amazonaws.com: command not found
答案 0 :(得分:3)
如果您在进行作业时删除webix.ui({
view:"datalayout",
rows:[
{ name:"$value", type:"header", template:"#panel#" },
{ name:"any", view:"grouplist", template:"#value#" },
],
data:[
{ panel:"1", any:tree_data },
{ panel:"2", any:cars_data }
]
});
变量之前的$
,则会有效。
HOST
还尝试使用getopts以获得更好的可伸缩性。
答案 1 :(得分:-2)
您应该像这样更改案例陈述:
HOST=$(case $ENDPOINT in
"cluster1") echo "myhost1.abcde.us-west-1.amazonaws.com";;
"cluster2") echo "myhost2.abcde.us-west-1.amazonaws.com";;
"cluster3") echo "myhost3.abcde.us-west-1.amazonaws.com";;
esac)
现在无法测试,让我知道它是否有效。