检查shell脚本中的参数

检查shell脚本中的参数,shell,if-statement,arguments,Shell,If Statement,Arguments,我很难找到这方面的指南 此shell脚本有什么问题: if ["$1" == "-t"] then echo "t" elif ["$1" == "-r"] then echo "r" fi 这应该是一个非常简单的测试。如果参数是-t,则做一件事,如果参数是-r则做另一件事。[是一个命令(与man[一起查看,或直接转到man test),因此,需要在它们周围留出空格才能正确解释: if [ "$1" == "-t" ] then echo "t"

我很难找到这方面的指南

此shell脚本有什么问题:

if ["$1" == "-t"]
then
        echo "t"
elif ["$1" == "-r"]
then
        echo "r"
fi

这应该是一个非常简单的测试。如果参数是
-t
,则做一件事,如果参数是
-r
则做另一件事。

[
是一个命令(与
man[
一起查看,或直接转到
man test
),因此,需要在它们周围留出空格才能正确解释:

if [ "$1" == "-t" ]
then
        echo "t"
elif [ "$1" == "-r" ]
then
        echo "r"
fi
如果[“$1”=“-t”]…,最好使用符合POSIX标准的
=


请参见下面的有趣注释。
[
是一个命令(使用
man[
或直接到
man test
查看)。因此,需要在其周围留出空格,以便正确解释:

if [ "$1" == "-t" ]
then
        echo "t"
elif [ "$1" == "-r" ]
then
        echo "r"
fi
如果[“$1”=“-t”]…
,最好使用符合POSIX标准的
=


请参见下面的有趣注释。
[
是一个命令(使用
man[
或直接到
man test
查看)。因此,需要在其周围留出空格,以便正确解释:

if [ "$1" == "-t" ]
then
        echo "t"
elif [ "$1" == "-r" ]
then
        echo "r"
fi
如果[“$1”=“-t”]…
,最好使用符合POSIX标准的
=


请参见下面的有趣注释。
[
是一个命令(使用
man[
或直接到
man test
查看)。因此,需要在其周围留出空格,以便正确解释:

if [ "$1" == "-t" ]
then
        echo "t"
elif [ "$1" == "-r" ]
then
        echo "r"
fi
如果[“$1”=“-t”]…
,最好使用符合POSIX标准的
=


请参阅和下面有趣的注释。请检查基本错误。这应该很简单!提示:
[]
(语句)命令需要在括号中加空格。就是这样。将此添加为答案,以便我可以接受。@fedorqui(是的,这是一个nit,但…
[]
不是一个语句。
[
是一个命令。太多的人会困惑地认为
[
是shell语法的一部分,而将其称为“语句”会强化这一错误。千万不要像这样链接
if/else
case$1 in;-t)echo t;;-r)echo r;;esac
检查基本错误。提示:
[/code>(语句)命令需要在括号中加空格。就是这样。把这个作为答案添加进来,这样我就可以接受它。@fedorqui(是的,这是一个nit,但是…
[
不是一个语句。
[
是一个命令。太多的人会困惑地认为
[
是shell语法的一部分,并称之为“语句”强化了这个错误。千万不要像这样连锁
if/else
case$1 in;-t)echo t;;-r)echo r;;esac
检查基本错误。这应该很简单!提示:
[]
(语句)命令需要在括号中加空格。就是这样。添加这个作为答案,这样我就可以接受它。@fedorqui(是的,这是一个nit,但是…
[]
不是一个语句。
[
是一个命令。太多人认为
[
是shell语法的一部分,而将其称为“语句”会强化这个错误。千万不要像这样链接
if/else
case$1 in;-t)echo t;;-r)echo r;;esac检查基本错误。它应该很简单!提示:
[]
(语句)命令需要在括号周围留空格。就是这样。添加这个作为答案,这样我就可以接受它。@fedorqui(是的,这是一个nit,但是…
[]
不是一个语句。
[
是一个命令。太多的人会困惑地认为
[
是shell语法的一部分,而将其称为“语句”会强化这一错误。千万不要像这样链接
if/else
case$1 in;-t)echo t;;-r)echo r;;esac
如果我们想尝试学究式的正确,最好使用(符合POSIX标准)字符串比较运算符
=
而不是扩展名
=
。另一个nit:
[]
也不是命令!
[
是命令,
]
是它的最后一个参数。说
[]
虽然是一个命令,但是…让读者注意!如果我们要尝试学究式的正确,可能最好使用(符合POSIX标准的)字符串比较运算符
=
而不是扩展名
=
。另一个错误:
[]
也不是命令!
[
是一个命令,
]
是它的最后一个参数。虽然说
[]
是一个命令可能更容易,但是…让读者注意!如果我们想尝试学究式的正确,可能最好使用(符合POSIX的)字符串比较运算符
=
而不是扩展名
=
。另一个错误:
[]
也不是一个命令!
[
是一个命令,
]
是它的最后一个参数。虽然说
[]
是一个命令可能更容易,但是…让读者小心!如果我们想尝试学究式的正确,可能最好使用(符合POSIX的)字符串比较运算符
=
而不是扩展名
=
。另一个问题:
[]
也不是命令!
[
是命令,
]
是它的最后一个参数。虽然说
[]
是命令可能更容易,但是……请读者注意!