bash - 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函数中使用花括号呢?
解决方案
if
bash 中的语句必须以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
}
推荐阅读
- c++ - 寻找对(假定的)MSVC 19.16 错误的洞察力
- java - java.util.concurrent.ForkJoinPool.common.parallelism 指导选择合适的并行度大小
- java - 登录spring集成java DSL
- react-native - TaskQueue:任务错误:未定义不是反应原生的对象(评估'_this.view._component.measureInWindow')
- android - 有没有可能在android中一次安装多个应用程序?
- python - 从两个文件中添加数字(逐行)
- javascript - 对象键顺序
- c++ - ABI 规范中的内存布局是否仅适用于 ABI 边界?
- c# - 如何在 NEST 术语聚合查询 c# 中获得与 kibana 或 postman 一样的 Elasticsearch 结果
- swift - 如何从闭包中检索要在函数中返回的值?