- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 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/
我想知道为什么下面的小脚本现在可以工作。 我在/data 目录下创建了 dfFile 但脚本没有打印 if 语句中的表达式。 #!/bin/ksh DATAFILE="/data/dfFile" ec
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我正在编写一个简单的 ksh 脚本。我必须检查字符串是否为空。怎么做呢?这就是我所拥有的: findRes=`find . -name believe | xargs grep -q "ser"` i
首先介绍一点背景知识:我们有 9 个 JVM 服务器,它们输出日志文件,我不断地解析这些日志文件以查找何时发生错误。日志每 5-10 分钟滚动一次,但文件名不会更改。我使用 SupperPutty 打
当脚本由 ksh 提供时,它如何确定它的路径? IE。 $ ksh ". foo.sh" 我已经在 stackoverflow 和其他地方发布的 BASH 中看到了非常好的方法,但还没有找到 ksh
我在某处读到 ksh 的数组支持 += 来追加新元素,但我试过了,它不起作用: [ksh] # arr=(a b c d) [ksh] # arr+=e [ksh] # echo ${arr[*]}
在我的 ksh 脚本中,我有参数 VERSION=3.9.2X。 $VERSION 始终以 3.9.2 开头,X 可以是任何整数或 float 。 以下不规则 ksh 语法适用于任何 X 整数,但不适
我参与了将包含数百个 ksh 脚本的系统从 AIX、Solaris 和 HPUX 移植到 Linux 的过程。我发现 ksh 在两个系统上的行为方式存在以下差异: #!/bin/ksh flag=fa
我正在编写一个 Expect 脚本并且在处理 shell 提示时遇到了麻烦(在 Linux 上)。我的 Expect 脚本生成 rlogin并且远程系统正在使用 ksh .远程系统上的提示包含当前目录
我讨厌 eval... 我被这个 ksh 困住了,它必须是这样的。 我需要这个函数,它将接收一个变量名和一个值。将对该变量的内容和值做一些事情,然后必须更新接收到的变量。排序: REPORT="a t
我希望我的 ksh 脚本具有不同的行为,具体取决于是否有通过 stdin 传入的内容: (1) cat file.txt | ./script.ksh (then do "cat ./tmp
set -o vi-tabcomplete正在打开选项卡自动完成 和 set -o emacs正在打开历史记录(上一个命令向上,下一个命令向下) 但是,如果我同时在 ~/.kshrc 中设置,它只会打
#!/bin/ksh ######################### for i in {1..30} ;do echo $i done 输出是: {1..30} 我的代码有什么问题
我编写了一个示例 KornShell 函数来拆分字符串,将其放入数组中,然后打印出值。 代码如下 #!/usr/bin/ksh splitString() { string="abc@hotm
我需要检查变量是否具有以指定子字符串开头的字符串值。 在 Python 中,它会是这样的: foo = 'abcdef' if foo.startswith('abc'): print 'Su
我正在尝试在 ksh 中构建一种属性集。 我认为最简单的方法是使用数组,但语法太让我难受了。 我想要的是 在配置文件中构建具有名称和属性的任意大小的数组。 迭代该列表中的每个项目并获取该属性。 我理论
我正在尝试在 ksh 中构建一种属性集。 我认为最简单的方法是使用数组,但语法太让我难受了。 我想要的是 在配置文件中构建具有名称和属性的任意大小的数组。 迭代该列表中的每个项目并获取该属性。 我理论
我需要知道执行赋值的命令的退出状态。 export VALUE=`My_Get_Value 10` 我需要知道 My_Get_Value 脚本的退出状态。 在$?中,我拥有分配本身的状态。 我在 KS
我使用内置的“getopts”ksh 来处理命令行选项,我正在寻找一种干净/标准的方法来“取消设置”命令行上的选项。我不知道这是关于 getopts 的技术问题还是更多的风格/标准问题。无论如何,我知
在 ksh 中,如下所示 iname=FA USER_FA=xyz USER_CS=test TDUSER=USER_$iname ${!TDUSER} ${!TDUSER} 未按预期工作。为什么?
我是一名优秀的程序员,十分优秀!