首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查文件的bash脚本在意外令牌“`fi”附近出现语法错误

检查文件的bash脚本在意外令牌“`fi”附近出现语法错误
EN

Stack Overflow用户
提问于 2022-08-10 15:00:19
回答 1查看 145关注 0票数 0

我正在尝试在bash脚本中设置条件,以确保文件是否存在,跳过整个代码并转到下一部分。

“”“

代码语言:javascript
复制
            echo "k8s: starting the init script"
              if [ ! -e /etc/sawtooth/keys/validator.priv ]; then
                echo $pbft0priv > /etc/sawtooth/keys/validator.priv
                echo $pbft0pub > /etc/sawtooth/keys/validator.pub
              fi &&
            echo "k8s: checking for keys"
              if [ ! -e /root/.sawtooth/keys/my_key.priv ]; then
                sawtooth keygen my_key
              fi &&
            echo "k8s: checking for config-genesis.batch"
              if [ ! -e /var/lib/sawtooth/genesis.batch.file ]; then
                if [ ! -e config-genesis.batch ]; then
                  sawset genesis -k /root/.sawtooth/keys/my_key.priv -o config-genesis.batch
                fi &&
            echo "k8s: sleeping for 30 sec"
                sleep 30 &&
            echo sawtooth.consensus.pbft.members=["\"$pbft0pub\",\"$pbft1pub\",\"$pbft2pub\",\"$pbft3pub\",\"$pbft4pub\""] &&
                if [ ! -e config.batch ]; then
                  sawset proposal create \
                    -k /root/.sawtooth/keys/my_key.priv \
                    sawtooth.consensus.algorithm.name=pbft \
                    sawtooth.consensus.algorithm.version=1.0\
                    sawtooth.consensus.pbft.members=["\"$pbft0pub\",\"$pbft1pub\",\"$pbft2pub\",\"$pbft3pub\",\"$pbft4pub\""] \
                    sawtooth.publisher.max_batches_per_block=1200 \
                    -o config.batch
                fi && \
                fi &&
              if [ ! -e /var/lib/sawtooth/genesis.batch ]; then
                  sawadm genesis config-genesis.batch config.batch
              fi &&
             
              sawtooth-validator -vv \
                --endpoint tcp://$SAWTOOTH_0_SERVICE_HOST:8800 \
                --bind component:tcp://eth0:4004 \
                --bind consensus:tcp://eth0:5050 \
                --bind network:tcp://eth0:8800 \
                --scheduler parallel \
                --peering static \
                --maximum-peer-connectivity 10000

“”“

但是我得到了第28行的错误:在意外令牌fi' line 28: fi &&‘附近的语法错误

这是28号线:

代码语言:javascript
复制
 26:  -o config.batch
 27:               fi && \
 28:               fi &&
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-10 16:40:37

您的问题出现在第27行:

代码语言:javascript
复制
fi && \

&& \不属于那里。这是块中的最后一个if,因此不应该将&&放在那里,因为之后没有命令。

代码语言:javascript
复制
if true; then
    if true; then
        echo one
    fi &&
    if true; then
        echo two
    fi
fi &&
echo three
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73308548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档