首页  编辑  

Bash中函数返回string

Tags: /计算机文档/脚本,批处理/   Date Created:
bash/shell中,如果要写一个函数,函数中返回string,比较麻烦,对于整数,函数中可以直接使用 return n 即可。
要返回string,可以使用 echo,例如:
#!/bin/bash

function input {
  echo "输入不能为空"
  local buf=""
  read -p $1 buf
  echo $buf
}

name=$(input "请输入姓名")
echo $name
上述代码,你会发现函数第一个 echo 的数据也被返回到变量了,并且函数调用的时候并不会显示出来!
解决方法是重定向输出。
改进如下:
#!/bin/bash

function input() {
    local buf=""
    while true; do
        read -p "$1" buf
        if [ -z "$buf" ]; then
            echo "输入不能为空,请重新输入。" >&2
        else
            break
        fi
    done
    echo $buf
}
user=$(input "用户名:")
echo $user