首页 > 解决方案 > 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函数中使用花括号呢?

标签: bash

解决方案


ifbash 中的语句必须以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
}


推荐阅读