所以我是 kornshell 的新手,我的 if 语句无法正常工作。这是我文件中的内容
if $1 = "Y"
then
echo "I am here";
fi
当我执行文件时,这是我得到的错误:
test.ksh[1]: Y: not found [No such file or directory]
我究竟做错了什么?
所以我是 kornshell 的新手,我的 if 语句无法正常工作。这是我文件中的内容
if $1 = "Y"
then
echo "I am here";
fi
当我执行文件时,这是我得到的错误:
test.ksh[1]: Y: not found [No such file or directory]
我究竟做错了什么?
if
必须跟在命令后面;它测试命令是否成功终止。
您可以使用命令test
或等效命令[
,或内置 ksh [[
:
if test "$1" = Y
或者
if [ "$1" = Y ]
或者
if [[ $1 == Y ]]
如果其参数指示的条件为真,则上述命令成功。man test
应该为您提供有效条件的列表。请记住为test
and[
命令引用变量替换;如果没有,未定义的变量将被替换为空(即它们将被删除),这通常是一个错误报告。
如果您不需要严格的 Posix 兼容性,请使用ksh
内置[[
的bash
. 它更方便,因为它不会对参数进行分词,因此不需要引用变量扩展。请注意,如果使用[[
,比较的右侧==
是一个模式(“glob”),除非它被引用,因此如果您需要文字相等性检查,您可能需要在右侧使用引号。