shell的环境变量

来源:互联网 发布:lol 出装 数据网站 编辑:程序博客网 时间:2024/05/22 01:31

1.当一个shell脚本程序执行时,一些变量会随着环境的设置进行初始化。

$HOME:当前用户的家目录。

$PATH:用冒号分割的用来搜索命令的列表。

$IFS:输入域分割符

$0:shell脚本的名字

$#:传递给shell脚本的参数个数

$$:shell脚本的进程号

$?:上一个命令的退出值Last command or function's return value.

$!: Last program's PID.上一个进程的pid,例如用在shell脚本中用这个语句启动一个新进程nohup a.sh;echo $!就可以输出a.sh的pid。

2.可以使用export在子shell中设置环境变量。

3.$1,$2,$3....表示依次传入shell的参数,$*是指列出所有输入参数,$@也是所有输入参数,但不受$IFS影响。

4.可以用read +参数名来从控制台读取参数输入变量。

5.shell执行时 在末尾加入&可以在后台执行。

6.IFS=‘’可以设置环境变量,使用unset IFS取消环境变量设置,回到默认。

7.if [ $var = "yes"]  与 “$var” = "yes"的区别,当c$var为空时前者会报shell错误,后者不会,因为解析后前者是if [ = "yes"],后者是if [ “” = "yes"]

8.#!/bin/sh

9.eval命令允许对参数进行求值,类似于一个额外的$,它允许对代码随时的生成和运行,例如 y='$'$x;eval z=$y,那么z的值就变成了x的值。

10.exec的用法,exec后面接执行命令。将当前shell替换成执行程序,执行程序的进程id变成当前shell的,exec后面一行的命令不会再执行了。

nohup命令也可以在当前命令中执行一个新程序,但不是替换。新程序有新的pid。

11.export导出变量,使变量在子shell中也是可用的。

12.用反引号或者$取得命令的执行结果,使命令执行,如x=`expr $x + 1`;或者x=$(expr $x + 1);

13.expr表达式

14.set的作用,set可以为当前shell设置参数变量,许多命令的输出结果是以空格分割的,如果需要输出某个域的值就可以用这个命令。如set $(date),然后用$2就可以取得月份的值。

15.shift命令的作用,将参数全都左移一位,$0不变,原先$1的丢弃,$2编程$1.

16.ps -p pid这个进程的使用时间;如果有这个进程,返回true。

top实时监控当前进程及性能

16.trap命令,用于指定接收到信号要执行的命令。trap command signal。如trap 'rm -R file' INT,INT是中断信号。如果要重置某个信号的处理方式到默认值,可以将command设为-。

17.find命令,参考linux程序设计第70页。

18.grep命令。

19.正则表达式

0 0