gpt4 book ai didi

shell - KornShell (ksh) 中的测试命令

转载 作者:行者123 更新时间:2023-11-28 19:59:36 26 4
gpt4 key购买 nike

我对 KornShell (ksh) 中的测试命令有疑问。我知道 -ne 用于比较整数,而 != 用于比较字符串。如果一个参数是字符串而另一个是整数,测试命令将如何表现?我的代码中有以下条件,并且都正常工作。

代码:

myCount=1
myCount=`expr $myCount+ 0`
temp=`ps -aef | grep damn | wc -l`
if [ $temp -ne $myCount]; then
echo ERROR Number
fi

if [ $temp != $myCount ]; then
echo ERROR Strings
fi

输出:

ERROR Number
ERROR Strings

最佳答案

类型不相关,因为它是一个简单的文本替换。换句话说,变量 $temp 的值将代替 $temp(例如)。

至少对于我正在运行的 ksh 版本,对于数字比较,如果值以非数字开头,它将等于 0。如果它以数字开头,但包含非数字,你会得到一个错误。

例如:

$ export s1=xyz
$ export s2=7xyz
$ export i1=0
$ if [ $i1 -eq $s1 ]
> then
> echo equal
> fi
equal
$ if [ $i1 -eq $s2 ]
> then
> echo equal
> fi
ksh: 7xyz: bad number `7xyz'

但是,根据您的意见,可能并非所有版本的 ksh 都是如此。

基于此,我将尝试确保您对字符串使用字符串比较,对数字使用数字比较。其他任何东西都可能是不可移植的。

关于shell - KornShell (ksh) 中的测试命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4034216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com