shell 笔记

 

本地变量:

定义:VAR_NAME=VALUE
变量引用:${VAR_NAME}
取消变量:unset VAR_NAME
相当于java中的私有变量(private),只能当前类使用,子类和其他类都无法使用。

环境变量:

自定义的环境变量对当前shell进程及其子shell进程有效,对其它的shell进程无效
定义:export VAR_NAME=VALUE
对所有shell进程都有效需要配置到配置文件中
vi /etc/profile
source /etc/profile
相当于java中的protected修饰符,对当前类,子孙类,以及同一个包下面可以共用。

 

局部变量:

在函数中调用,函数执行结束,变量就会消失
对shell脚本中某代码片段有效
定义:local VAR_NAME=VALUE
相当于java代码中某一个方法中定义的变量,只对这个方法有效。

 

单引号, 双引号, 反引号

''单引号不解析变量
""双引号会解析变量
``反引号是执行并引用一个命令的执行结果,类似于$(...)

 算数运算:

let varNamer=算术表达式
varName=$[算术表达式]
varName=$((算术表达式))
varName=`expr $num1 + $num2`
使用这种格式要注意两个数字和+号中间要有空格。

 

后台运行:


在脚本后面加一个&
  test.sh &
  这样的话虽然可以在后台运行,但是当前会话窗口关闭之后这个脚本也会停止运行
使用nohup test.sh &
  nohup命令将进程和终端分开,所以关闭当前会话窗口不会影响这个进程的执行。
  nohup会在当前执行的目录生成一个nohup.out日志文件

posted @ 2019-10-21 17:35  龘人上天  阅读(97)  评论(0编辑  收藏  举报