bash开关中的算术表达式

时间:2018-04-29 12:16:13

标签: bash syntax expression

我希望这个脚本加载字符串参数,检查它的长度,如果它的长度是1,那么将1分配给一个变量,否则为它分配一个算术表达式。我遇到了bash语法问题,无法使其正常工作。任何帮助,将不胜感激。这是我的尝试:

#!/bin/bash

stringArg=$1
let myVariable=1
case "${#stringArg}" in
 1) myVariable=1 ;;
 *) myVariable="${#stringArg}*2-2" ;;
esac

echo $myVariable

使用./test.sh 123输出3*2-2运行此功能,但我希望它能够打印4

1 个答案:

答案 0 :(得分:0)

您只是将表达式分配给变量而不是评估后的实际值。

您可以通过各种方式评估表达式,$(())bc等。

#!/bin/bash

stringArg=$1
let myVariable=1
case "${#stringArg}" in
 1) myVariable=1 ;;
 *) myVariable="${#stringArg}*2-2" ;;
esac

echo $(( $myVariable ))