Linux Shell编程(1)-Shell简介
发布时间:2023-01-09 10:44:31 所属栏目:Unix 来源:
导读: 最近有人问我,什么时候能出一些Linux Shell相关的学习资料,今天就在这里给大家做个交代好吧
。我会分成多次来写。
1、Shell简介
?命令解释语言
?程序设计语言
shell可
。我会分成多次来写。
1、Shell简介
?命令解释语言
?程序设计语言
shell可
|
最近有人问我,什么时候能出一些Linux Shell相关的学习资料,今天就在这里给大家做个交代好吧 。我会分成多次来写。 1、Shell简介 ?命令解释语言 ?程序设计语言 shell可以理解为是用户与系统交互的界面,提供的是用户与系统内核交互的接口。 shell也可以理解为是命令的解释器,接收用户输入的名利,并解释给系统内核,将内核执行的结果返回给用户界面。 当一个用户登录linux系统后,系统就会为该用户创建一个shell进程。 2、Shell版本 ?BourneShell:是贝尔实验室开发的,unix普遍使用的shell,在编程方面比较优秀,但在用户交互方面没有其他shell优秀。 ?BASH:是GNU的BourneAgain Shell,是GNU操作系统上默认的shell,在 bourneshell基础上增强了很多特性,如命令补全,命令历史表等等 ?Korn Shell:是对BourneShell的发展,在大部分内容上与BourneShell兼容,集成了CShell和Bourneshell优点。 ?CShell:是SUN公司Shell的BSD版本,语法与c语言相似,比bourneshell更适合编程 3、第一个Shell脚本 登录到linux系统中,创建一个hello.sh文件。输入以下内容,并存并退出。 #!/bin/bashecho "hello world" 保存完成后,在命令行中执行下列命令,执行脚本。 [root@localhost ~]# chmod +x hello.sh [root@localhost ~]# ./hello.sh hello world 说明: 在脚本的第一行中#/bin/bash的作用是声明脚本中的命令(代码)以/bin目录下的bash shell来执行。 echo是一个输出命令unix编程,可以将命令后面的内容输出到终端界面上。可以输出字符串、变量等。 chmod +x hello.sh 熟悉linux系统常用命令的应该能看明白,因为脚本创建完成后,默认是没有可执行权限的,所以需要给脚本赋予执行权限,这样脚本才能被执行。 ./hello.sh 用来执行这个脚本,当然也可以使用绝对路径的方式来执行,例如我的这个脚本是存放在/root/hello.sh。那么就可以使用/root/hello.sh来执行。 四、输入输出 echo: 显示文本行或变量取值,或者把字符串输入到文件中,将内容输出到标准输出上。可以理解为输出到终端屏幕或者是文件。 语法:echo [-n|-e|-E] 选项说明 -n:输出结束后,不加换行符 -e:启用转义 -E:禁止转义 示例: -n 输出hello后,不加换行[root@localhost ~]# echo -n 'hello'hello[root@localhost ~]# -e 常用的带转义功能符 符号 说明 \a 响铃 \n 换行 \t 制表符 \\ 屏蔽\的特殊含义,输出\ #?\n[root@localhost ~]# echo -e 'hello\nworld'helloworld # \t[root@localhost ~]# echo -e 'hello\tworld'hello world #?\\[root@localhost ~]# echo -e 'hello\\world'hello\world #?\a?执行后,电脑发出嗡鸣声[root@localhost ~]# echo -e 'hello\aworld'helloworld 颜色设置 语法echo -e "\e[字体颜色;背景颜色;显示方式m输出内容\e" 字体颜色:字体颜色基本色为30-37 背景色:背景的基本色从40-47 显示方式说明:取值范围:? 0:关闭所有属性,默认为01:文字加粗2:一半亮度,感觉不明显4:给输出的内容加上下划线5:闪烁,字体会在终端闪烁7:自动加入背景,来反显内容8:字体颜色会和背景色相同,只有鼠标选中才能看到内容 -E:屏蔽特殊含义 此时,\n,\a,\t都将失去特殊含义,只能作为普通的字符输出 [root@localhost ~]# echo -E 'hello\nworld'hello\nworld[root@localhost ~]# echo -E 'hello\tworld'hello\tworld[root@localhost ~]# echo -E 'hello\aworld'hello\aworld[root@localhost ~]# echo -E 'hello\nworld'hello\nworld 输出变量: 使用echo可以将一个变量的值输出到终端中。 语法:echo $变量名 或${变量名} 示例: #?输出JAVA_HOME这个变量的值[root@localhost ~]# echo $JAVA_HOME/usr/local/jdk1.8.0_202 # 第二种方式[root@localhost ~]# echo ${JAVA_HOME}/usr/local/jdk1.8.0_202 如果系统中没有这个变量,则输出结果为空,变量名区分大小写。 read:读取用户键盘输入,或从一个文本中读取数据,赋值给变量 语法:read 变量名[,变量名...] 变量名最好遵守下字母、数字、下划线组成,不要用数字哦,某些情况下会有问题,数字的变量名有特殊作用,后面会说道。 输入的数据是以空格隔开,如果变量名只有一个,那么都将赋值给这个变量。示例: [root@localhost ~]# read namezhangsan [root@localhost ~]# echo $namezhangsan[root@localhost ~]# read namezhangsan lisi[root@localhost ~]# echo $namezhangsan lisi 如果变量名有多个,数据有一个或多个,将会按照顺序,依次赋值,而数据多于变量个数,则多出来的数据,都将赋值给最后一个变量。 # 两个变量名,两个值的情况[root@localhost ~]# read name sexzhangsan 男[root@localhost ~]# echo $namezhangsan[root@localhost ~]# echo $sex男 # 两个变量名,一个值的情况,最后一个变量的值为空[root@localhost ~]# read name sexzhangsan[root@localhost ~]# echo $namezhangsan[root@localhost ~]# echo $sex #?数据多于变量名的情况[root@localhost ~]# read name sexzhang san 男[root@localhost ~]# echo $namezhang[root@localhost ~]# echo $sexsan 男 (编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐

浙公网安备 33038102330577号