文章目錄
mysql
變量是任何一門語言中都不可缺乏的組成部分,用於存放各類數據。 腳本語言在使用變量前一般不須要聲明類型,只須要直接賦值便可。
環境變量: 有一些特殊的變量會被shell腳本或者操做系統環境用來存儲一些特別的值,這類變量被稱爲環境變量,也有人叫系統變量。linux
系統定義的變量 | 意義 |
---|---|
BASH=/bin/bash | Bash Shell 名稱 |
BASH_VERSION=4.1.2(1) | Bash 版本 |
HOME=/home/linuxtechi | 用戶家目錄 |
LOGNAME=LinuxTechi | 當前登陸用戶的名字 |
OSTYPE=Linux | 操做系統類型 |
PATH=/usr/bin:/sbin:/bin:/usr/sbin | 可執行文件搜索路徑 |
PWD=/home/linuxtechi | 當前工做目錄 |
SHELL=/bin/bash | Shell 名稱 |
USERNAME=linuxtechi | 當前登陸的用戶名 |
[root@ecs-c13b ~]# echo $BASH/bin/bash[root@ecs-c13b ~]# echo $OSTYPElinux-gnu[root@ecs-c13b ~]#
咱們能夠查看與進程相關的環境變量:sql
[root@ecs-c13b ~]# pgrep sshd2970 29858[root@ecs-c13b ~]# cat /proc/2970/environ LANG=en_US.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binNOTIFY_SOCKET=/run/systemd/notifySSH_USE_STRONG_RNG=0[root@ecs-c13b ~]#
[root@ecs-c13b ~]# 2eee=4 ## 不能以數字開頭-bash: 2eee=4: command not found[root@ecs-c13b ~]# name=zhangshan ### 大小寫的區別[root@ecs-c13b ~]# NAME=lisi[root@ecs-c13b ~]# echo $namezhangshan[root@ecs-c13b ~]# echo $NAMElisi
[root@ecs-c13b ~]# ctest=mysql[root@ecs-c13b ~]# echo $ctestmysql[root@ecs-c13b ~]# echo $ctest-txtmysql-txt[root@ecs-c13b ~]# echo $ctest.db.log-txtmysql.db.log-txt[root@ecs-c13b ~]# echo {$ctest}db.log{mysql}db.log[root@ecs-c13b ~]# echo ${ctest}db.logmysqldb.log
[root@ecs-c13b ~]# echo $ctestdb.log-txt.log-txt
[root@ecs-c13b ~]# echo date
date
[root@ecs-c13b ~]# echo $(date)
Wed Aug 5 15:53:03 CST 2020
[root@ecs-c13b ~]# echo date
Wed Aug 5 15:53:15 CST 2020
[root@ecs-c13b ~]#shell
[root@ecs-c13b ~]# date +"%Y-%m"2020-08[root@ecs-c13b ~]# date +"%Y-%m-%d-%H%M%S"2020-08-05-155600[root@ecs-c13b ~]#
date命令加減操做:date +%Y%m%d #顯示當天年月日date -d "+1 day" +%Y%m%d #顯示明天的日期date -d "-1 day" +%Y%m%d #顯示昨天的日期date -d "-1 month" +%Y%m%d #顯示上一月的日期date -d "+1 month" +%Y%m%d #顯示下一月的日期date -d "-1 year" +%Y%m%d #顯示前一年的日期date -d "+1 year" +%Y%m%d #顯示下一年的日期
注:\轉義符,跟在\以後的特殊符號將失去特殊含義,變爲普通字符。如$將輸出「$」符號,而不當作是變量引用vim
[root@ecs-c13b ~]# name=zmgaosh[root@ecs-c13b ~]# echo $namezmgaosh[root@ecs-c13b ~]# echo '$name'$name[root@ecs-c13b ~]# echo "$name"zmgaosh
特殊變量 | 含義 |
---|---|
$$ | Shell自己的PID(ProcessID) |
$! | Shell最後運行的後臺Process的PID |
$? | 最後運行的命令的結束代碼(返回值) |
$- | 使用Set命令設定的Flag一覽 |
$* | 全部參數列表。如"$*「用「」」括起來的狀況、以"$1 $2 … $n"的形式輸出全部參數。 |
$@ | 全部參數列表。如"$@「用「」」括起來的狀況、以"$1" 「 2 " … " 2" … " 2"…"n」 的形式輸出全部參數。 |
$# | 添加到Shell的參數個數 |
$0 | Shell自己的文件名 |
$1 到$n | 添加到Shell的各參數值。$1是第1參數、$2是第2參數…。 |
[root@ecs-c13b ~]# vim ex1[root@ecs-c13b ~]# chmod +x ex1 [root@ecs-c13b ~]# ./ex1 11 12 14Shell 傳遞參數實例! 執行的文件名:./ex1 第一個參數爲:11 第二個參數爲:12 第三個參數爲:14[root@ecs-c13b ~]#
練習一:
模擬用戶登陸並顯示登陸用戶bash
[root@ecs-c13b ~]# vim login.sh[root@ecs-c13b ~]# bash login.sh 請輸入用戶名: zmgaosh 請輸入密碼: 123456 Login success,Welcome,zmgaosh[root@ecs-c13b ~]#
本節是按部就班學運維繫列的shell篇-shell變量。 理解了變量對於咱們後面的學習頗有幫助。運維