我知道 Linux 中的一些非常基本的命令,并且正在尝试编写一些脚本。我编写了一个函数,用于计算 5 位数字中最后 2 位数字的总和。该函数应该在最后 2 位数字之间连接这个结果总和并返回它。我想返回这个值的原因是因为我将在另一个函数中使用这个值。
例如:如果我有 12345,那么我的函数将计算 4+5 并返回 495。
#!/bin/bash
set -x
echo "enter: "
read input
function password_formula
{
length=${#input}
last_two=${input:length-2:length}
first=`echo $last_two| sed -e 's/\(.\)/\1 /g'|awk '{print $2}'`
second=`echo $last_two| sed -e 's/\(.\)/\1 /g'|awk '{print $1}'`
let sum=$first+$second
sum_len=${#sum}
echo $second
echo $sum
if [ $sum -gt 9 ]
then
sum=${sum:1}
fi
value=$second$sum$first
return $value
}
result=$(password_formula)
echo $result
我正在尝试回显并查看结果,但我得到的输出如下所示。
-bash-3.2$ ./file2.sh
+++ password_formula
+++ echo 'enter: '
+++ read input
12385
+++ length=8
+++ last_two=85
++++ echo 85
++++ sed -e 's/\(.\)/\1 /g'
++++ awk '{print $2}'
+++ first=5
++++ echo 85
++++ sed -e 's/\(.\)/\1 /g'
++++ awk '{print $1}'
+++ second=8
+++ let sum=5+8
+++ sum_len=2
+++ echo 5
+++ echo 8
+++ echo 13
+++ '[' 13 -gt 9 ']'
+++ sum=3
+++ value=835
+++ return 835
++ result='enter:
5
8
13'
++ echo enter: 5 8 13
enter: 5 8 13
我还尝试将结果打印为:
password_formula
RESULT=$?
echo $RESULT
但这给出了一些未知的价值:
++ RESULT=67
++ echo 67
67
如何正确存储正确的值并在屏幕上打印(仔细检查)?
提前致谢。