busybox是变数吗?

时间:2018-02-01 11:33:04

标签: regex busybox

以下脚本在我的Ubuntu 16.04 shell上按预期工作:

Teststring="1234a5"
re='^[0-9]+$'
if ! [[ $TestString =~ $re ]]; then
  echo "is not a number"
  exit 1
fi

在我的目标上虽然,我只有busybox而不是一个完整的shell,它引发了以下错误:

ash: =~: unknown operand

如何使其与busybox一起使用?

背景:我有一个busybox脚本,想要从系统上的特殊文件读取一个数字,用它做一些计算并将结果写到另一个文件。 在进入"而不是数字" -Errors以后,我想做一个propper check bevorehand。

1 个答案:

答案 0 :(得分:0)

  • 使用外部工具

egrep的

if ! echo "$Teststring" | egrep -q "$re"; then

或修改重新

re='[0-9]\+'
if ! expr "$Teststring" : "$re"; then
  • 使用内置shell扩展

在该特定情况下:如果字符串为空或包含非数字

case $Teststring in
    ''|*[!0-9]*) 
    echo "is not a number"     
    ;;
esac