shell 函数的使用(参数传递+返回值)

格式和用法的介绍网上很多,

参数传递:

  • 直接写在函数名后面
  • 带空格的字符串,比如变量time=“2020-06-28 13:00:00",不能直接写 func $time,这样传递过去后,在func函数体中,time会因为空格被拆开,变成 $1是2020-06-28,$2是13:00:00。正确的方式是:func" $time

返回值:

  • 数字,直接return 5  这样返回,通过 $? 这样获取
  • 字符串,通过全局获取,或者类似 result=$(dir)这种形式

这里直接写一个简单的demo:

#!/bin/bash

# 返回数字
func_1(){
	echo $1
	echo $2
	return 6
}

func_1 "1" "2"
echo "return num: "$?


# 返回字符串
func_2(){
	var_str="wode"
}
func_2
echo $var_str

运行结果:

shell 函数的使用(参数传递+返回值)_第1张图片


最后,记录一下时间戳转化的命令

参考:https://www.cnblogs.com/liangjichen/p/4700896.html

Linux下时间转换的一些命令:

  • date +%s   可以得到UNIX的时间戳;
  • 用shell将日期时间与时间戳互转:

      date -d "2015-08-04 00:00:00" +%s     输出:1438617600

  • 而时间戳转换为字符串可以这样做:

      date -d @1438617600  "+%Y-%m-%d"    输出:2015-08-04

  • 如果需要得到指定日期的前后几天:
          seconds=`date -d "2015-08-04 00:00:00" +%s`       #得到时间戳
          seconds_new=`expr $seconds + 86400`                   #加上一天的秒数86400
          date_new=`date -d @$seconds_new "+%Y-%m-%d"`   #获得指定日前加上一天的日前

你可能感兴趣的:(shell 函数的使用(参数传递+返回值))