在我的一个shell脚本(例如abc.sh)中,我在Sleeptime if条件以下,每当在参数中将sleeptime作为null传递时,默认值-1。此逻辑在ksh中工作正常,但在bash中工作不正常,原因是-eq关系运算符在比较空字符串时在bash中不工作。为了解决这个问题,我在脚本的开头添加了shebang表达式#!/ bin / ksh。
if [ "$Sleeptime" -eq "" ]; then
Sleeptime=-1
fi
在我的脚本中添加shebang表达式后,比较和默认设置都可以正常工作,但是当我从其他海关sh文件执行abc.sh时,比较和默认设置不起作用时,我也尝试在自定义sh文件中添加shebang表达式但仍然面临这个问题。任何指示,请解决问题。
自定义sh文件内容:
#!/bin/ksh
cd /opt/common/config/
sh abc.sh $1 $2 $3
$3- is the sleeptime argument