shell脚本学习1-shell介绍及变量

shell是什么
根绝维基百科的定义。shell,一种壳层与命令行界面,是UNIX操作系统下传统的用户和计算机的交互界面,用户直接输入命令来执行各种各样的任务。Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电脑程序使用的文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与解释型语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果。利用shell脚本可以进行系统管理,文件操作等。
学习shell有什么用
学习shell是为了自动化,而自动化则是为了提高工作效率,提高产出,更进一步则是提高公司的收入 。
了解了上面两点就让我们开始进入到shell的学习环阶:

  1. 第一个shell脚本
    就像学习其他语言语言一样我们也先从helloworld开始编写我们的第一个shell脚本:
    shell echo 'hello world!'
    将上述文件写入到文件,并命名为helloworld.sh,shell脚本都是以sh后缀为结尾的。利用chmod +x helloworld.sh 命令为其添加执行权限,在输入./helloworld.sh执行。我们的终端就会打印hello world! 。第一个shell脚本就执行成功了。
  1. shell变量
    shell脚本中的变量分为系统变量自定义变量 。系统变量包含$HOME,$PWD,$USER等,通过set命令可以查看当前系统中的所有变量, env命令可以显示所有环境变量。变量名有字母,数字,下划线三者组成但不能以数字开头,变量名一般用大写字母定义。
  • 定义变量语句: 变量名=变量值,要注意的是等号左右两边不能有空格否则会失效。
  • 删除变量:unset 变量名
  • 声明静态变量:readonly 变量名 ,注意静态变量不能用unset删除
  • 使用变量: $变量名
  • 将命令返回值赋值给给一个变量A=`HOME` 注意 A=$(HOME) 这种写法也可以但不是所有shell都支持.
  • 声明环境变量(临时) export 变量名=变量值 通过这种方式设置的环境变量直在本次登陆中有效。
  • 声明环境变量(永久)修改/etc/profile文件,在文件中加入export 变量名=变量值,保存后执行source /etc/profile 命令让环境变量生效。该方法对所有用户生效,如果想要只对单个用户生效需要修改~/.bash_profile文件并执行source ~/.bash_profile
  1. 位置参数变量
    位置参数变量指的是调用shell命令时,跟在命令后面以空格隔开的参数,举了例子cp /etc/profile /tmp/ 命令中cp是shell指令, /etc/profile/tmp/则是命令的参数。在shell脚本中我们可以获取到这些参数。
  • $n$0代表命令本身,$1-$9代表第一个到第九个参数,第十个及以上参数利用${n}来获取
  • $#: 该命令用于获取所有参数的个数,包含命令本身。
  • $*$@都可以用来获取所有参数,但前者将所有参数看作一个整体,后者将参数区分对待。
  1. 预定义变量
    预定义变量是由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等
  • $$ 返回当前进程的 PID 进程号
  • $! 返回后台运行的最后一个进程的 PID 进程号。
  • $? 返回最后一次执行的命令的返回状态,0为执行正确,非0执行失败。

以上就是关于shell中变量部分的全部内容,下一篇我们将会学习shell中的几种运算符。

posted @ 2020-08-11 23:21  罗斯托夫  阅读(1627)  评论(0编辑  收藏  举报