Shell

来源:互联网 发布:黑白调和西昊 知乎 编辑:程序博客网 时间:2024/05/22 08:05

Shell命令处理方式: 交互式(一次一条), Batch(批处理);

Shell解释执行,不要编译;

不要用root运行shell以免造成系统崩溃!

解释器:bash, sh, csh, ksh 读取我们编写的源代码转换成目标代码,由计算机运行.每次执行都有编译过程,所以效率下降(编译型语言直接执行目标代码,效率高)

#!/bin/bash     #the interpreter to run the program (must be rights)

echo “hello world”    # print

 

执行:

Chmod +x ./test.sh  #使之具有可执行权限

./test.sh

#注意:直接写test.sh的话,linux则会去PATH里找有没有test.sh,但只有/bin, /sbin, /usr/bin, /usr/sbin在PATH里;而./test.sh则是在当前目录里找;

 

变量

定义:var=”value” #变量名与=间不加空格

使用变量:变量名前加$,如 echo $var   或 echo ${var}

只读变量 :readonly var  #声明为只读

删除:unset var

 

三种变量类型:局部,环境,shell

特殊变量:

$$ 当前shell进程ID

$0 当前脚本文件名

$n n是一个数字,表示传递给脚本的第n个参数

$# 参数个数

$* 传递给脚本的所有参数

$@ 如上,

“$*” “$@” 其他是参数单独分开,而”$*”是所有参数做为一个整体

$? 上次命令的退出状态或函数返回值: 0成功, 其他失败

 

变量替换:”$var”, echo –e “\n”转义字符的替换

 

$时的变量替换:

${var} 取本来的值

${var:-word}: if val is null or unset, return word while var not changed

${var:=word}: if val = null or unset, return word and var = word

${var:?message}if val = null or unset, output message and shell break

${var:+word} if val is defined, return word and var = var

 

 

 

 

运算符

Expr: ‘expr 2+2’ #2 + 2 is wrongs

    表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。

    完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

 

If[$a == $b]   #$a != $b

Then 

 …

fi

 

关系运算符:

 -eq, -ne, -gt, -lt, -ge #greater of equal, -le

 

布尔运算:

!, -o #or , -a #and ,

 

字符串运算符

= #相等, !=, -z #长度是否为0; -n #长度是否不为0, str #是否不为空;

 

文件

 

http://c.biancheng.net/cpp/view/7001.html

0 0