加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_池州站长网 (https://www.0566zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux Shell编程(1)-Shell简介

发布时间:2023-01-09 10:44:31 所属栏目:Unix 来源:
导读:  最近有人问我,什么时候能出一些Linux 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 男
 
 

(编辑:我爱制作网_池州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章