linux if 语法错误,Linux Script嵌套if语句给出语法错误

我试图嵌套多个if语句如下:

#!/bin/bash

# start_server.sh

#

# Use this script to start the MarketDataTransmitter.

#

# Usage: ./start_server.sh Starts the MarketDataTransmitter.

reset=$(tput sgr0)

red=$(tput setaf 1)

green=$(tput setaf 2)

yellow=$(tput setaf 3)

cyan=$(tput setaf 6)

echo

directory=$(ls -l)

check_exist=$(awk -v a="$directory" -v b="MarketDataTransmitter" 'BEGIN { print index(a, b) }')

if [ "$check_exist" = "0" ]; then

# MarketDataTransmitter is not present.

echo "${red}[ERROR]${reset} Could not start ${yellow}MarketDataTransmitter${reset}."

echo " ${yellow}MarketDataTransmitter${reset} could not be found."

else

# MarketDataTransmitter is present.

processes=$(ps -ef | grep -i "MarketDataTransmitter" | grep -v "grep" | grep -v "bash" | awk '{ print $8 }')

check_run=$(awk -v a="$processes" -v b="MarketDataTransmitter" 'BEGIN { print index(a, b) }')

if [ "$check_run" = "0" ]; then

# MarketDataTransmitter is not running.

if [ -e "srv.log" ]; then

if [ -s "srv.log" ]; then

if [ -d "logs" ]; then

date_time=$(date '+%Y%m%d_%H_%M_%S')

new_log_name="srv_$date_time.log"

mv srv.log $new_log_name

mv $new_log_name logs

else

mkdir logs

date_time=$(date '+%Y%m%d_%H_%M_%S')

new_log_name="srv_$date_time.log"

mv srv.log $new_log_name

mv $new_log_name logs

fi

else

echo "srv.log is empty and will be removed."

rm -rf srv.log

fi

else

# No srv.log but this is to start MarketDataTransmitter so we can ignore.

fi

./MarketDataTransmitter > srv.log &

echo "${yellow}MarketDataTransmitter${reset} has been started."

else

# MarketDataTransmitter is already running.

echo "${red}[ERROR]${reset} Could not start ${yellow}MarketDataTransmitter${reset}."

echo " ${yellow}MarketDataTransmitter${reset} is already running."

fi

fi

echo

然而它给我语法投诉说:

意外标记’fi’附近的语法错误

在最后一个’fi’

有谁知道为什么?

谢谢.

[编辑]已发布完整代码.

解决方法:

你有一个else语句和fi语句,在44-46行之间没有任何内容(只是它们之间的注释).在bash中,你需要在else块的主体中​​有一些语句,或者取出else块.

标签:bash,linux,if-statement

来源: https://codeday.me/bug/20190530/1185524.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值