当前位置: 首页 > 知识库问答 >
问题:

在Bash中发出if、elif、else语句

周辉
2023-03-14

我似乎搞不清楚下面的if语句与elifthen有关的问题是什么。请记住,printf仍然在开发中,我只是还没有能够在语句中测试它,所以很可能是错误的。

我得到的错误是:

./timezone_string.sh: line 14: syntax error near unexpected token `then'
./timezone_string.sh: line 14: `then'

而语句是这样的。

if [ "$seconds" -eq 0 ];then
   $timezone_string="Z"
elif[ "$seconds" -gt 0 ]
then
   $timezone_string=`printf "%02d:%02d" $seconds/3600 ($seconds/60)%60`
else
   echo "Unknown parameter"
fi

共有1个答案

姜天宇
2023-03-14

elif[之间缺少空格:

elif[ "$seconds" -gt 0 ]

应该是

elif [ "$seconds" -gt 0 ]

由于我看到这个问题得到了很多的观点,所以指出要遵循的语法是很重要的:

if [ conditions ]
# ^ ^          ^

这意味着括号周围需要空格。否则就不行了。这是因为[本身就是一个命令。

您没有看到类似elif[:command not found(或类似内容)的原因是,在看到ifthen之后,shell正在查找elifelsefi。但是,它发现了另一个then(在格式错误的elif[之后)。只有在解析了语句之后,它才会被执行(并且会输出类似elif[:command not found的错误消息)。

 类似资料:
  • 本文向大家介绍Python if, elif, else,包括了Python if, elif, else的使用技巧和注意事项,需要的朋友参考一下 示例 在Python中,您可以定义一系列条件if,第一个条件用于elif其余条件,直到最后一个(可选)else用于其他条件条件未捕获的任何条件。 产出 Number is bigger than 2 使用else if代替elif会触发语法错误,因此是

  • 我已经阅读了下面的链接,但没有回答我的问题 Python是否有三元条件运算符?(问题是关于将if-else语句压缩到一行) 是否有一种更简单的方法来编写if-elif-else语句,使其适合一行<例如, 或者是一个真实的例子: 我只是觉得如果上面的例子可以用下面的方式写,它看起来会更简洁。

  • if/then/elif/else构造具有多个else分支。 语法 (Syntax) F#编程语言中if/then/elif/else语句的语法是 - if expr then expr elif expr then expr elif expr then expr ... else expr 例子 (Example) let a : int32 = 100 (* che

  • 问题内容: 我想在lambda函数中使用if … elif … else将lambda函数应用于DataFrame列。 df和代码都是smth。喜欢: 显然,这种方式是行不通的。如果.... elif ....其他不适合lambda,有什么方法可以应用?如何使用List Comprehension关联相同的结果? 感谢您的任何回复。 问题答案: 巢号:

  • 我试图检查一个进程(假设它被称为some_进程)是否正在服务器上运行。如果是,则回显1,否则回显0。 这是我正在使用的命令,但它只能部分工作(更多信息见下文)。注意,我需要在一行中编写脚本。 注:某些过程中的是为了防止grep自身返回。 如果某个_进程正在运行,则会回显“1”,这很好。但是,如果某个_进程未运行,则不会产生任何回声。

  • 本文向大家介绍Python中的if、else、elif语句用法简明讲解,包括了Python中的if、else、elif语句用法简明讲解的使用技巧和注意事项,需要的朋友参考一下 下面我们学习if语句,输入下面的代码,确保能够正确运行。 运行结果 加分练习 通过上面的练习,我们自己猜测一下if语句的作用,用自己的话回答下面的问题。 1. 你认为if对它下面的代码做了什么? 判断为True就执行它下面的