IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> shell脚本基本表达式 -> 正文阅读

[系统运维]shell脚本基本表达式

查看系统的全局变量

##1. 查看当前系统中的所有的全局/系统变量
[root@localhost ~]# set

##2. 查看指定的变量指
[root@hadoop ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/apps/jdk1.8.0_45/bin:/opt/apps/tomcat-7.0.47/bin:/root/bin

##3. 自定义变量
[root@localhost ~]# a=1
[root@localhost ~]# set
a=1

##4. 撤销变量
[root@localhost ~]# unset a

变量的范围

##1. 查看当前系统中的所有的全局/系统变量
[root@localhost ~]# set

##2. 查看指定的变量指
[root@hadoop ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/apps/jdk1.8.0_45/bin:/opt/apps/tomcat-7.0.47/bin:/root/bin

##3. 自定义变量
[root@localhost ~]# a=1
[root@localhost ~]# set
a=1

##4. 撤销变量
[root@localhost ~]# unset a

静态变量

##1. 定义静态变量
[root@localhost tmp]# readonly a=1
##2. 静态变量不能撤销
[root@localhost tmp]# unset a
-bash: unset: a: cannot unset: readonly variable

特殊变量

##1. $? : 表示查询上一个命令的结果
[root@localhost tmp]# echo $?
1
[root@localhost tmp]# echo "123"
123
[root@localhost tmp]# echo $?
0
[root@localhost tmp]# safbabsd
-bash: safbabsd: command not found
[root@localhost tmp]# echo $?
127
## tip : 0表示成功,除此之外都是表示错误的代码

##2. $$ : 查看当前进程的编号
[root@localhost ~]# echo $$
6436

##3. $0 : 获取当前的脚本名称
[root@localhost tmp]# vi shelltest.sh
#!/bin/bash

name=$0
echo $name

[root@localhost tmp]# sh shelltest.sh
shelltest.sh

##4. $n : n表示1-9的数字。表示的是输入参数之意
[root@localhost tmp]# vi shelltest.sh
#!/bin/bash

arg1=$1
arg2=$2
echo "$arg1 - $arg2"
[root@localhost tmp]# sh shelltest.sh
 -
[root@localhost tmp]# sh shelltest.sh 1 2
1 - 2
[root@localhost tmp]# sh shelltest.sh lixi nb
lixi - nb
[root@localhost tmp]# sh shelltest.sh lixi nb 11
lixi - nb

##5. $# : #表示变量的个数
[root@localhost tmp]# vi shelltest.sh
arg1=$1
arg2=$2
echo "$arg1 - $arg2"
echo $#

[root@localhost tmp]# sh shelltest.sh lixi nb 11
lixi - nb
3
[root@localhost tmp]# sh shelltest.sh lixi nb
lixi - nb
2
[root@localhost tmp]# sh shelltest.sh lixi
lixi -
1

##6. $* 和 $@
##6.1 基本使用
[root@localhost tmp]# vi shelltest.sh
#!/bin/bash

echo '$*'
echo $*

echo '$@'
echo $@

[root@localhost tmp]# sh shelltest.sh lixi lidong linan libei
$*
lixi lidong linan libei
$@
lixi lidong linan libei

## $* 和 $@的区别
## $* :把被传入的参数当作是一个整体的字符串,而$@将参数存放到一个数组之中。

##6.2 举例对比
[root@localhost tmp]# vi shelltest.sh
#!/bin/bash

echo '$*'
for n in "$*" ## 类似于foreach
do ## {
echo $n
done ## }

echo '$@'
for n2 in "$@" ## 类似于foreach
do ## {
echo $n2
done ## }


[root@localhost tmp]# sh shelltest.sh lixi lidong linan libei
$*
lixi lidong linan libei
$@
lixi
lidong
linan
libei

if语句

#!/bin/bash
if [ $1 -ge 10 ]
then
    echo "你输入的值大于10"
elif [ $1 -lt 10 ]
then
  echo "你输入的值小于10"
else
  echo "你输入的不对"
fi

case语句

#!/bin/bash
#case语句

case $1 in
1|2|3|4|5)
  echo "你输入的值在1~5之间"
;;
*)
  echo "你输入的值不在1~5之间"
;;
esac

for语句

#!/bin/bash
#for语句

for i in $*
do
  echo "i的值为:"$i
done

echo "======================="

for n in {1..3}
do
  echo "1111"
done

echo "======================="
for ((i=0;i<4;i++))
do
  echo "i的值为:"$i
done

while

#!/bin/bash
#while

read -p "请你输入一个大于5的数:" num
#$num获取该值
while [ $num -gt 5 ]
do
   echo "加油"
#此时的num是定值,不需要$进行获取,直接进行--
   let num--
done

echo "===================="

while (($num>2))
do
   echo "中国"
   let num--
done

read

read -p(提示)
     -n(字符个数)
     -t(等待时间)

算数判断

-gt:大于  >
-lt: 小于 <
-ge:大于等于  >=
-le:小于等于   <=
-eq:等于     =
-ne:不等于   !=

权限判断

-r:判断一个文件是否具备读权限
-w:判断一个文件是否具备写权限
-x:判断一个文件是否具备执行权限
-f:判断是否为一个常规的文件
-d:判断目录
-b:判断是否为设备备件
?  /tmp [ -f tmp4.sh ] 
?  /tmp echo $?
0

函数

#!/bin/bash
function sum()
{
  echo "111"
}

sum
#这里调用的时候不用加括号
echo "===================="
arg()
{
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第n个参数:"$10
echo "第11个参数:${11}"
echo "参数的总个数:$#"
echo "奖参数当作是一个整体的字符串:$*"
}
arg 1 2 3 4 5 6 7 8 9 20 21 23

跨脚本调用函数

在跨脚本调用函数中
在该脚本中要标明要调用的脚本的绝对路径
#!/bin/bash
. /tmp/function.sh()
arg 1 2 3 4 5 6 7 8 9 20 21
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:13:10  更:2021-09-11 19:15:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:09:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码