首页 > 解决方案 > 社邦表情

问题描述

在我的一个 shell 脚本(比如 abc.sh)中,如果条件低于 Sleeptime,只要在参数中将 sleeptime 作为 null 传递,-1 就会被默认。这个逻辑在 ksh 中运行良好,但在 bash 中不行,原因是 -eq 关系运算符在比较空字符串时在 bash 中不起作用。为了解决这个问题,我在脚本开头添加了 shebang 表达式 #!/bin/ksh。

if [ "$Sleeptime" -eq "" ]; then

            Sleeptime=-1
fi

将shebang表达式添加到我的脚本后,比较和默认工作正常,但是当我的abc.sh从其他海关sh文件执行时,比较和默认不起作用,我也尝试在自定义sh文件中添加shebang表达式但仍然面临问题。任何指针请解决问题。

自定义sh文件内容:

 #!/bin/ksh

cd /opt/common/config/

sh abc.sh $1 $2 $3

$3- is the sleeptime argument

标签: shebang

解决方案


推荐阅读