# 变量 ## 系统内置变量 ### date变量 `date`系统内置变量,用于获取当前时间,格式为`YYYY-MM-DD HH:MM:SS`。 #### 格式 常用格式: ``` [root@lwz1 ~]# date 2023年 12月 26日 星期二 10:18:37 CST # 列出全部时间,年月日 时分秒 星期 [root@lwz1 ~]# date "+%Y-%m-%d %H:%M:%S %w" 2023-12-26 10:29:08 2 # 年月日 [root@lwz1 ~]# date +%Y-%m-%d 2023-12-26 或者 [root@lwz1 ~]# date +%y-%m-%d 23-12-26 # 时分秒 [root@lwz1 ~]# date +%H:%M:%S 10:21:21 或者 [root@lwz1 ~]# date +%T 10:21:31 # 时间戳 [root@lwz1 ~]# date +%s 1703557366 # 翻译时间戳 [root@lwz1 ~]# date -d @1703557366 2023年 12月 26日 星期二 10:22:46 CST # 一天后的当前时间 [root@lwz1 ~]# date -d "+1day" 2023年 12月 27日 星期三 10:24:17 CST # 一天前的当前时间 [root@lwz1 ~]# date -d "-1 day" 2023年 12月 25日 星期一 10:24:38 CST # 一个月前的当前时间 [root@lwz1 ~]# date -d "-1 month" 2023年 11月 26日 星期日 10:26:10 CST # 一分钟前 [root@lwz1 ~]# date -d "-1 min" 2023年 12月 26日 星期二 10:25:37 CST # 星期 [root@lwz1 ~]# date +%w 2 或者 [root@lwz1 ~]# date +%W 52 # 日历 [root@lwz1 ~]# cal 十二月 2023 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ``` > -d 选项用于指定时间,格式为`-d "+1 day"`表示增加一天,即后一天的时间。 ## 自定义变量 ### 变量定义 变量定义格式: ``` [root@lwz1 ~]# name=lwz [root@lwz1 ~]# echo $name lwz ``` - 变量是为了方便简化比较长的命令,和常用命令 - 变量名和等号之间不能有空格 - 变量名只能包含字母、数字和下划线,且不能以数字开头 - 变量名是区分大小写的 ## 脚本中的变量 - 使用条件语句时,常用变量`if [ $a -gt 1 ]; then ... ; fi` - 引用某个命令的结果,用变量代替`n="wc -l 1.txt"` - 用户交互时,用变量`read -p "Input a number: " n; echo $n`如果没写n,可以直接使用`$REPLY` - 内置变量`$0`表示当前脚本的文件名,`$1`表示第一个参数,`$2`表示第二个参数,`$#`表示参数个数,`$*`表示所有参数,`$@`表示所有参数,`$?`表示上一条命令的退出状态。 - 数学运算时,`a=1;b=2;c=$(($a+$b));echo $c`a+b也可以用`$[$a+$b]` - 获取字符串长度`${#string}`