我希望这个脚本加载字符串参数,检查它的长度,如果它的长度是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。
发布于 2018-04-29 12:24:46
您只是将表达式赋值给变量,而不是赋值后的实际值。
您可以以各种方式计算表达式,如$(())或bc等。
#!/bin/bash
stringArg=$1
let myVariable=1
case "${#stringArg}" in
1) myVariable=1 ;;
*) myVariable="${#stringArg}*2-2" ;;
esac
echo $(( $myVariable ))https://stackoverflow.com/questions/50086462
复制相似问题