【发布时间】:2017-12-06 13:29:37
【问题描述】:
我为 SLES11 开发了一个更大的脚本,一切运行良好。 但使用 SLES12 时,启动脚本时会出现一些语法错误。
错误:syntax error: '=~' unexpected operator/operand
#!/bin/ksh
while [[ ! $BIGTAB =~ ^-?[0-9* ]+$ ]] || [[ ! $BIGTAB -ge 1 ]]; do
echo " Enter number of tables to display:"
read BIGTAB
...
=~ 好像不再支持了!?
你能给我帮助吗,如何替换 SLES12 的语法(并且仍然在 SLES11 下运行)。
谢谢!
【问题讨论】:
-
检查 SLES 12 上的 ksh 版本。
-
SLES11:版本 AJM 93u+ 2012-08-01 SLES12:旧版 KSH R50 2015/04/19 SLES
-
如果您无法为 SLES12 获得 ksh93,我建议切换到 bash——虽然语法并不总是相同,但现代版本的功能非常完整,甚至提供了更多功能晦涩的功能,例如名称变量。 (浮点数学仍然缺失,但这很容易解决)。