Linux if语句中存在未知错误
在bash脚本中的Linux if语句中存在未知错误,linux,bash,if-statement,command,raspbian,Linux,Bash,If Statement,Command,Raspbian,在bash脚本中的if语句中出现未知错误: Bash脚本: 您的[和]周围需要空格 为什么? [是一个命令 tim@Hairy16:~$ ls /usr/bin [ 尝试如果[$TIMESINCELASTMOD\和您需要在[/code>和]周围留出空格 为什么? [是一个命令 tim@Hairy16:~$ ls /usr/bin [ 尝试如果[$TIMESINCELASTMOD\
if
语句中出现未知错误:
Bash脚本:
您的
[
和]
周围需要空格
为什么?
[
是一个命令
tim@Hairy16:~$ ls /usr/bin
[
尝试如果[$TIMESINCELASTMOD\<$delay];则
在bash中,命令周围需要空格
此外,您需要使用-lt
、-gt
、-le
和-ge
而不是
前面的
。它们意味着小于、大于、小于或等于以及大于或等于。[/code>和
您需要在[/code>和]周围留出空格
为什么?
[
是一个命令
tim@Hairy16:~$ ls /usr/bin
[
尝试如果[$TIMESINCELASTMOD\<$delay];则
在bash中,命令周围需要空格
此外,您需要使用-lt
、-gt
、-le
和-ge
而不是
前面的
。它们的意思是小于、大于、小于或等于、大于或等于。在[
后面和]
前面加一个空格,如果[$TIMESINCELASTMOD
…是您的朋友,请检查您的脚本中的所有语法问题。这无疑是重复的;在[
和之前和之后添加空格可以解决很多问题
@KeithThompson可能是的,但我不知道该搜索什么,因为我不知道问题出在[
之后和]
之前的行如果[$TIMESINCELASTMOD
…是您的朋友,请检查您的脚本中的所有语法问题。这无疑是重复的;在[
和之前和之后添加空格可以解决很多问题
@KeithThompson可能是的,但我不知道该搜索什么,因为我不知道问题是什么谢谢你,解决了问题,你为我节省了很多时间!@JoshuaWeber如果可以,请接受这个答案以显示问题已解决!@JoshuaWeber单击向下箭头下方的勾号。完成!祝您愉快,先生。@JoshuaWeber:事实上,如果我理解脚本正在做什么,您必须使用-le
,-gt
等,因为它们进行数字比较而不是词汇比较。区别在于[5-lt 100]
是真的,但是[5\<100]
是假的,因为“5”在“1”之前按照词法排序顺序。或者使用双括号表达式(例如((TIMESINCELASTMOD
),它们完全是算术表达式(和自动展开变量,不需要转义大于或小于符号)。谢谢你,解决了问题,你为我节省了很多时间!@JoshuaWeber如果可以的话,请接受这个答案以表明问题已经解决!@JoshuaWeber单击向下箭头下方的勾号。完成了!祝您愉快,先生。@JoshuaWeber:事实上,如果我理解脚本的作用,您必须使用-le
,-gt
,等等,因为它们进行数值比较而不是词法比较。区别在于[5-lt 100]
为真,但[5\<100]
为假,因为在词法排序顺序中“5”位于“1”之前。或者使用双括号表达式(例如((TIMESINCELASTMOD
,它们完全是算术表达式(和自动展开变量,并且不需要转义大于号和小于号)。
tim@Hairy16:~$ ls /usr/bin
[