shell脚本基础
发布时间:2020-12-15 21:28:21 所属栏目:安全 来源:网络整理
导读:一:shell基础 概述:shell脚本与python一样是一种解释性语言 应用: Shell 脚本的优势在于处理偏操作系统底层的业务,例如,Linux 内部的很多应用(有的是应用的一部分)都是使用 Shell 脚本开发的,因为有 1000 多个 Linux 系统命令为它作支撑,特别是 Lin
一:shell基础 概述:shell脚本与python一样是一种解释性语言 应用: Shell 脚本的优势在于处理偏操作系统底层的业务,例如,Linux 内部的很多应用(有的是应 用的一部分)都是使用 Shell 脚本开发的,因为有 1000 多个 Linux 系统命令为它作支撑, 特别是 Linux 正则表达式以及三剑客 grep、awk、sed 等命令。 对于一些常见的系统脚本,使用 Shell 开发会更简单、更快速,例如,让软件一键自动化安 装、优化,监控报警脚本,软件启动脚本,日志分析脚本等,虽然 Python 也能做到这些,但 是考虑到掌握难度、开发效率、开发习惯等因素,它们可能就不如 Shell 脚本流行以及有优势 了。对于一些常见的业务应用,使用 Shell 更符合 Linux 运维简单、易用、高效的三大原则 二:shell 脚本 #!/bin/bash # ————————》#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执# #行,即使用哪一种 Shell;后面的/bin/bash就是指明了解释器的具体位置。 echo "Hello World !" #这是一条语句 1 查看shell
? 查看默认shell
二 变量 1 变量的声明与调用 2 变量的引用注意点 3 将命令结果赋值给变量 [[email?protected] ~]# log=$(cat a.txt) #命令结构赋值 [[email?protected] ~]# echo $log #输出变量 server { listen port; server_name localhost ; location / { root html; index index.html index.htm; } } server { listen port; server_name localhost ; location / { root html; index index.html index.htm; } } [[email?protected] ~]# log1=$(cat text.sh) #命令结构赋值 [[email?protected] ~]# echo $log1 #输出变量 #!/bin/bash url="http://www.baidu.com" web1="百度一下你就知道 ${url}" web2=‘百度一下你就知道 ${url}‘ echo $web1 echo $web2 只读变量: 4 变量的删除 三 变量的作用域 1 局部变量 [[email?protected] ~]# vim t1.sh [[email?protected] ~]# chmod +x t1.sh [[email?protected] ~]# ./t1.sh 99 [[email?protected] ~]# cat t1.sh #!/bin/bash #定义函数 function func(){ a=99 } #调用函数 func #输出函数内部变量 echo $a 2 全局变量 [[email?protected] ~]# a=22 #定义一个全局变量 [[email?protected] ~]# echo $a #输出全局变量 22 [[email?protected] ~]# bash # 进入shell子进程 [[email?protected] ~]# echo $a #输出变量值 [[email?protected] ~]# exit #推出shell进程 exit [[email?protected] ~]# export a #将a定义为环境变量 [[email?protected] ~]# bash #进入shell环境 [[email?protected] ~]# echo $a #输出变量值 22 [[email?protected] ~]# exit #推出shell环境 exit ?三:shell命令替换 四:shell 脚本传递参数 2 给函数传递位置参数 [[email?protected] ~]# vim t4.sh [[email?protected] ~]# cat t4.sh #!/bin/bash #定义函数 function func() { echo "language :$1" echo "URL:$2" } #调用函数 fun c++ http://c.biancheng.net/cplus [[email?protected] ~]# chmod +x t4.sh [[email?protected] ~]# ./t4.sh language :c++ URL:http://c.biancheng.net/cplus 五: shell中特殊的变量 Shell特殊变量:Shell $#、$*、[email?protected]、$?、$$
? 六 shell 中字符串的操作 1 字符串的拼接(直接拼接) [[email?protected] ~]# name="good" [[email?protected] ~]# name1="hello" [[email?protected] ~]# echo name name1 name name1 [[email?protected] ~]# echo $name $name1 good hello 2字符串的切割 [[email?protected] ~]# url="www.baidu.com" [[email?protected] ~]# echo ${url:2:9} w.baidu.c [[email?protected] ~]# echo ${url:4:9} baidu.com [[email?protected] ~]# echo ${url:4:-1} baidu.co [[email?protected] ~]# echo ${url:-4:-1} www.baidu.com 七 shell中的数组 1 数组的定义 [[email?protected] ~]# lst=(1 2 3 4 5 6 7) #定义数组 [[email?protected] ~]# echo ${lst[1]} #查看索引对应的数组 2 [[email?protected] ~]# echo ${lst[2]} 3 [[email?protected] ~]# echo ${lst[3]} 4 [[email?protected] ~]# echo ${lst[*]} #查看所有数组元素 1 2 3 4 5 6 7 [[email?protected] ~]# echo ${lst[@]} #查看所有元素数组 1 2 3 4 5 6 7 [[email?protected] ~]# lst=(1 2 3 4 5 6 7 8) [[email?protected] ~]# echo ${#lst[*]} #查看数组长度 8 2 数组拼接 [[email?protected] ~]# lst2=(a b c d e f) [[email?protected] ~]# lst0=(${lst[*]} ${lst2[*]}) [[email?protected] ~]# echo ${lst0[*]} 1 2 3 4 5 6 7 8 a b c d e f 3 删除数组 [[email?protected] ~]# unset lst0[1] [[email?protected] ~]# echo ${lst0[*]} 1 3 4 5 6 7 8 a b c d e f (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |