Unexpected `then' bash script

前端 未结 4 505
执念已碎
执念已碎 2020-12-11 12:53

How do I fix this error? I can\'t see anything wrong with my syntax.

ipcheck() {
  echolog \"[INFO] Enabling IP Forwarding...\"
  sudo echo 1 > /proc/sys/         


        
4条回答
  •  天涯浪人
    2020-12-11 13:04

    Shell scripting tends to be a lot more whitespace sensitive than you might be used to if you've come from other programming languages (read: C). Your if line has the problems. You are probably looking for:

    if [ $(cat /proc/sys/net/ipv4/ip_forward) == "0" ]
    

    The thing to remember here is that [ is not part of any special if syntax - it's the name of a program (sometimes a shell builtin). If you think of it like that, you can see how the command line parser needs it to be separated. Similarly, the [ command (or builtin) expects the closing ] to be separated from its other arguments, so you need a space before it, too.

提交回复
热议问题