shell基础.docx
- 文档编号:24848659
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:8
- 大小:16.02KB
shell基础.docx
《shell基础.docx》由会员分享,可在线阅读,更多相关《shell基础.docx(8页珍藏版)》请在冰豆网上搜索。
shell基础
1.shell文件头
因为shell有多种,所以编写shell要注明文件头:
#!
/bin/sh
c-shell
z-shell
2.注释
“#”代表注释
如:
#这是一行注释
3.变量定义
3.1.直接赋值
name=elson
3.2.使用命令返回值赋值
例如:
用pwd命令获取当前路径,并赋值
方式1:
pathNow=`pwd`
方式2:
pathNow=$(pwd)
3.3.用已有的变量赋值到新变量
pathNow2=$pathNow
提示1:
变量赋值时等号左右不允许有空格
例如:
name=elson这是错误
为什么?
这是因为"name=elson"shell以为name是一条命令,后跟两个参数"=elson"
提示2:
定义变量时不需要$,但读取时需要
例如:
赋值name=elson输出echo$name
ps:
1、写得时候不加$,读的时候加上$
2、赋值变量时,不能在“=”左边加上空格
3、输出不存在变量时,只输出空值,不报错
4、单引号不解析变量
5、在字符串中,建议变量加上{}=>${name}
4.变量输出
name=elson
echomynameis$name#mynameiselson
echomynameis${name}#mynameiselson推荐方式
echomynameis'$name'#mynameis$name这一个得注意!
!
!
echomynameis"$name"#mynameiselson
为什么推荐${name}这种方式呢?
首先语义化更明确,看shell时更容易明确哪些是变量,另外还能防止一些字符串连接的错误
例如:
name=elson
echomynameis$namewu#输出为:
mynameis空白,因为shell以为$namewu是一个变量
echomynameis${name}wu#输出为:
mynameiselsonwu正确,能区分开变量名和字符串连接
5.变量释放
unsetname
echo$name#不会报错,只输出空
6.读取输入变量
6.1.方式1:
readfirstsecondthird
echo"Uinputstring1:
$first"
echo"Uinputstring2:
$second"
echo"Uinputstring3:
$third"
6.2.方式2:
read-p"Uinputstring1:
"first
echo"Uinputstring1:
$first"
6.3.方式3:
echo"Uinputstring1:
$1"
提示:
字符串连接,不需要任何连接符
7.数学计算
a=10
b=20
c=30
7.1.方式1.
value1=`expr$a+$b+$c`
echo$value1#输出60
value1=`expr$c\*$a`
echo$value1#输出300
7.2.方式2.
echo$(($a+$b))#输出30
8.特殊变量
8.1.当前命令$0或${0}
echo"Thecommandis${0}"
8.2.当前命令接受的参数个数$#或${#}
echo"Thecommandisfirst${1},thesecondis${2}total${#}"
9.if语句
利用if编写一个只允许给定一个参数的shell文件
vimif01.sh
内容:
#!
/bin/sh
if[$#-eq0]
then
echo"Toofew"
exit1
elif[$#-gt1]
then
echo"Toomany"
exit1
else
echo"well"
fi
保存并退出,赋予if01.sh文件可执行权限
chmod+x./if01.sh
分别三种情况执行:
./if01.sh#输出Toofew
./if01.shelson#输出well
./if01.shelson24#输出Toomany
10.for语句
fordayinSaturdayTuesdaySunday
do
echo"Thedayis:
${day}"
done
11.case语句
echo"Pleaseselect..."
echo"A)Copy"
echo"B)Delete"
echo"C)Backup"
readop
case$opinc
A)
echo"selectA"
;;
B)
echo"selectB"
;;
C)
echo"selectC"
;;
*)
echo"invalideselect"
esac
12.while语句
12.1.代码1
vimwhile02.sh
#!
/bin/sh
num=3
while[$num-gt0]
do
echo$num
num=`expr$num+1`
done
12.2.代码2,特殊的shift
vimwhile02.sh
#!
/bin/sh
num=1
while[$#-gt0]
do
echo'$num='${num}',$#='$#',$1='${1}
num=`expr$num+1`
shift#参数列表往左移一位
done
./while02.shdavidelsonlamson
13.1.函数定义
#example1elsonlamson写在函数会报错,因为函数并未定义
example1()
{
name1=david
echo'$name='${name1}
echo'$arg1='${1}
echo'$arg2='${2}
}
调用函数
example1elsonlamson
14exit
exit0:
完全退出
exit1:
退出本程序,只退出执行中的shell文件
15需求1:
写出apache启用程序,要求包括启动、停止、重启
apache.shstart
apache.shrestart
apache.shstop
要包括安全性
apache.shsky->要报错
用函数去实现
16需求2:
写出mysql数据库备份程序,并定时执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- shell 基础