bash备忘

原创 2006年06月11日 14:00:00

 

bash备忘

hanlray@gmail.com
Revision: 1.01 Date: 2006/09/02

1. String比较操作符

  • str1 = str2
  • str1 != str2
  • str1 > str2
  • str2 < str2
  • -n str1 str1 is not null
  • -z str1 str1 is null

2. && 和 ||

  • statement1 && statement2 执行statement1,如果它的退出状态是0,执行statement2
  • statement1 || statement2 执行statement1,如果它的退出状态不是0,执行statement2

3. job control

当我们知道某个命令需要执行很久时,可以在该命令后加一个&号把它放到background执行;但当执行了一个命令后才发现它需要执行很久时,我们可以用Ctrl+Z来suspend当前在foreground执行的命令,然后用bg把它放到background执行;把某个在把background里执行的命令放回foreground,用fg [jobid],不带参数就选择最近被放到background的job;用jobs列出在background里的job

4. .bash_profile/.bash_login/.profile、.bashrc、.bash_logout

.bash_profile是只被login shell执行,当其不存在时会找.bash_login,当.bash_login不存在时找.profile .bashrc是当你在命令行上键入bash来新开一个shell时执行的文件 .bash_logout是每次login shell退出时执行的文件 当然.bash_profile里应该执行.bashrc

5. 变量和环境变量

给一个变量赋值:varname=value 使之成为环境变量:export varname 或者写在一起:export varname=value,用unset来取消赋值,就像该变量

怎么判断某个变量是否是环境变量呢?export命令会列出所有的环境变量

5.1. 重要的环境变量

  • PATH 如果没有指命令路径的话,bash将会到这里来寻找命令

5.2. 特殊变量

  • $? 上一个命令的退出状态

     

  1. 表达式 +
    • $(unix command) 其值为命令输出到标准输出的内容
    • ${varname:-expr} 若varname存在则返回其值,否则返回expr的值

6. #!

在bash中除了可以运行function、build-in command外,还可以运行属性为x的可执行文件,这时bash会创建一个子进程并通过检查文件开头是否有#!来判断是一个binary executable还是一个script,对binary executable直接运行(exec)该程序,对script则会运行#!指定的script解释器,然后由该解释器负责执行script中的各个语句。

7. exec

如上所述,当运行一个bash script时,当前shell会创建一个subshell,如果该script充当的是另一个程序的启动器,那么在script的最后就需要调用这个可执行程序,这时如果像在login bash中一样直接通过文件名来启动,那么当前subshell将会另建一个子进程来运行它,并且当该子进程退出后subshell才会退出,这样在这个程序的运行期间,这个subshell就是多余的,白白空占资源。这时可以用bash的exec命令来执行这个程序,它用指定的程序替换当前的shell,因此没有多余的进程产生。

相关文章推荐

git-flow 备忘清单

  • 2015年08月10日 00:27
  • 2.06MB
  • 下载

web service 备忘

  • 2015年01月21日 11:22
  • 40.17MB
  • 下载

设计模式阅读备忘笔记-组合模式

设计模式阅读备忘笔记-组合模式组合模式将对象组合合成树形结构以标识‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。最近在研究行为树,突然想起来组合模式,就此记录回顾一下...

androidMTK修改备忘

  • 2014年10月16日 15:33
  • 15KB
  • 下载

OpenCV学习备忘 Vol .3 CvMat矩阵基本介绍

OpenCV学习备忘 Vol .3 CvMat矩阵基本介绍 博客分类:  C Language opencv   参考书籍及资料 OpenCV中文社区 ...

超级漂亮的备忘插件

  • 2013年09月05日 22:16
  • 36KB
  • 下载

android+java环境变量配置备忘

  • 2013年07月26日 14:10
  • 573B
  • 下载

linode服务器本地备份过程备忘

http://www.linode.im/559.html#more-559 linode本身是提供收费备份的,但是对于大多数使用linode vps的朋友来说,本身linode价位已经...

MRP运算备忘.DOC

  • 2013年01月06日 08:29
  • 3.13MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bash备忘
举报原因:
原因补充:

(最多只允许输入30个字)