bash 函数中的大括号

时间:2021-01-12 11:26:40

标签: bash

我的 bash 脚本中有用于备份我的 elasticsearch 的功能

backup () {
if curator_cli --timeout 600 --host 192.168.2.11 --port 9200 snapshot --repository $SNAPSHOT_NAME --name snapshot-$DATE --filter_list "{\"filtertype\":\"pattern\",\"kind\":\"regex\",\"value\":\".*\"}"
then
 echo backup done
else
 echo backup failed
}

但是当我启动这个脚本时,它会打印错误

./elasticsearch_backup.sh
./elasticsearch_backup.sh: line 21: syntax error near unexpected token `}'
./elasticsearch_backup.sh: line 21: `}'

那么如何在bash函数中使用花括号?

1 个答案:

答案 0 :(得分:0)

bash 中的

if 语句必须以 fi 结束:

backup () {
if curator_cli --timeout 600 --host 192.168.2.11 --port 9200 snapshot --repository $SNAPSHOT_NAME --name snapshot-$DATE --filter_list "{\"filtertype\":\"pattern\",\"kind\":\"regex\",\"value\":\".*\"}"
then
 echo backup done
else
 echo backup failed
fi
}