shell的函数,for循环,字符串使用

  • 2018-11-25
  • 浏览 (1103)

下面这段代码包含了shell的函数,for循环,字符串使用
#!/bin/sh
#获取密码,密文是按一定规则处理的字符串

text="1k2l3k4l5d6h”

getPasswd(){
        passwd=$1
        value=""
        for ((i=0;$i<=${#passwd};i=$i+2));
        do
                value=$value${passwd:$i:1}
        done
        echo $value
}

value=$(getPasswd $text)

echo $value

1、用 echo 可以设置函数返回值。如果在函数中用return返回值,这种情况下return返回的必须是数字,否则会报错。
function test0()
{
        var=`echo abc`
        return $var
}
res=$(test0)
echo $?         #报错return: abc: numeric argument required

2、在函数体中用echo语句,调用函数时用$(function_name param1 param2 ... )获取函数中所有echo连在一起的值。如下:
function test1()
{
        echo "str1"                     # str1
        echo "str2"                     #str2
}
res=$(test1)
echo res                                #输出 str1 str2
因为$()中可以执行linux 命令,而这里$()中的function_name param1 param2可以当成一条命令来看。

0  赞