jiaxp 发表于 2018-8-21 07:20:41

Linux0基础深度解析shell简介01-13440661

  一、shell简介
  ------------
  用户
  |
  终端(相当于bash的接口)
  |
  shell(壳) bash 大多数Linux系统默认的shell环境
  |
  内核
  用户通过终端输入命令,提交给shell,再调用内核中的系统功能对命令进行执行。shell环境是用户使用linux的桥梁,它使得用户能与操作系统的核心功能进行交互。
  shell的两种执行命令的方式:
  交互式:解释执行用户的命令,用户输入一条命令,shell就执行一条。
  批处理:用户事先写一个shell脚本(scripts),其中有很多命令,让shell一次把这些命令执行完,而不用一条一条的敲命令。
  编写脚本
  打开文本编辑器,新建一个文件test.sh
  #!/bin/bash    --#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,/bin/bash是bash的解释器命令路径
  echo "what is your name?"
  echo "my name is lily."
  echo "hi lily!"
  执行脚本
  chmod +x ./test.sh    --脚本在当前目录,也可以用绝对路径
  ./test.sh
  也可以直接使用 sh ./test.sh
  二、shell变量
  ------------
  1.定义变量
  变量名=“变量内容”
  如:myname=“lily”
  注意事项:
  1)变量名和等号之间以及等号和变量内容之间不能有空格
  2)变量名只能包含数字、字母和下划线,且必须以字母开头
  3)变量名不能使用bash里的关键字
  2.使用变量
  $变量名      --获取变量内容
  如:echo $myname
  或 echo ${myname}
  echo "myname is $myname"
  3.变量类型
  shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。
  局部变量:局部变量是在脚本或命令中定义的,仅在当前shel实例中有效,其他shell启动的程序不能访问局部变量。
  环境变量:所有程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  特殊变量:除了数字、字母和下划线,还包含其他字符的变量成为特殊变量,如下:
  $0    当前脚本
  $n    传递给脚本或函数的参数,n是一个数字,表示第几个参数,如,第一个参数是$1,第二个参数是$2
  $#    传递给脚本或函数的参数个数
  $*    传递给脚本或函数的所有参数
  $@    传递给脚本或函数的所有参数
  $?    上个命令的退出状态,上一条命令执行成功则返回0,失败返回非0的数值
  $$    当前shell进程id。对于shell脚本而言就是这个脚本所在的进程id
  --举例说明:
  vimvar.sh    --新建一个shell脚本
  #!/bin/bash
  echo "文件名:$0"
  echo "参数1:$1"
  echo "参数2:$2"
  echo "总参数个数:$#"
  echo "所有参数:$*"
  echo "所以参数:$@"
  echo "上个命令的执行情况:$?"
  echo "当前shell进程id:$$"
  sh var.sh a b c      --执行脚本,并在后面接上参数
  文件名:var.sh
  参数1:a
  参数2:b
  总参数个数:3
  所有参数:a b c
  所以参数:a b c
  上个命令的执行情况:0    --0代表上个命令执行成功,非零表示上个命令执行失败
  当前shell进程id:4982
  4.read命令
  read命令将接收到的输入的数据放入一个标准变量中。
  echo -n “enter your name:"    --参数-n的作用是不换行,echo默认是换行的
  read name
  echo "hello $name"
  read -p "enter your name: " name    --参数-p允许在read命令行中直接指定一个提示
  echo "hello $name"

页: [1]
查看完整版本: Linux0基础深度解析shell简介01-13440661