shell脚本知识(一) 基本知识预备

1、shell脚本一般以#!开头。

2、printf: printf “%-5s %-10s %-4s\n” No Name Mark。%-5s指明一个格式为左对齐且宽度为5的字符串替代(-表示左对齐),如果不用-指定对齐方式,字符串则采用右对齐。宽度指定了保留给某个变量的字符数。对Name而言,保留宽度是10。

3、获得字符串的长度:var=1213434545345 length=$(#var) 可以获得字符串长度,,存放在length中。 获得使用哪种shell:echo $SHELL 或者 echo $0。 echo $UID 为0则为超级用户。

4、shell中数学运算:可以利用let、(())和[ ] 执行基本算数操作,高级操作使用 expr和bc。 n1=10 n2=12 自加:let n1++ result=$[ n1+n2 ] retult = `expr 3+4` result=$(expr $n1 +3)

5、文本描述符。 0 —— stdin (标准输入)

1 —— stdout (标准输出)

2 —— stderr (标准错误)

使用 echo $? 可以打印退出状态。

错误重定向: ls + 2> out.txt 将错误信息输出到out.txt中。

6、数组定义: array_var=(1 2 3 4 5 ) 或者 array_var[0] = "test1"。 echo ${array_var[*]} 输出所有的值,echo ${array_var[2]} 输出第二个 值。

7、获取终端信息。 获取终端的行数和列数: tput cols

tput lines

光标移动懂啊方位(100,100)处: tput cup 100 100

获得时间:date,日期格式如下:

$ date "+%d %B %Y"09 February 2015

8、脚本调试。

使用选项-x,启动跟踪调试shell脚本:

$ bash -x script.sh

-x标志能打印出所有执行的每一行命令及当前状态。输出到stdout。

可以在脚本中启用或禁止调试打印。

set -x :在执行时显示参数和命令

set +x:禁止调试

set -v:当前命令进行读取时显示输入

set +v:禁止打印输入。

9、函数和参数。

定义函数:

function fname()

{

statements;

}

或者

fname()

{

statements;

}

只要使用函数名就可以调用某个函数:

$ fname ;

fname arg1 arg2 ;传递参数

fname()

{

echo $1, $2; #访问参数1和参数2

echo “$@” ; 以列表形式一次性打印所有参数 类似有“$*”

}

$1是第一个参数

$2是第二个参数

$n是第n个参数

"$@" 被扩展成“$1” "$2" "$3"等。

10、利用子shell生成一个独立的进程

子shell本身就是独立进程。可以使用()操作符来定义一个子shell:

pwd;

(cd /bin;ls)

pwd;

子shell中执行时,不会对当前shell有任何影响,所有改变仅限于子shell内。如上例子中两个pwd命令输入内容一致。

11、read 读取键盘命令。

读取n个字符并存入变量var: read -n 2 var

不回显的方式读取密码: read -s var

显示提示信息: read -p “Enter input:” var

两秒内键入的字符串读入var:read -t 2 var

12、-gt :大于; -lt :小于; -ge:大于或等于; -le :小于或等于; -a:逻辑与 ; -o : 逻辑或。 -ne 不等于, -eq 等于。

[ $var1 -ne 0 -a $var2 -gt 2 ] var1不等于0,并且var2大于2。

系统文件相关测试:

[ -f $file_var ] ;如果给定的变量包含正常文件路径或文件名,返回真

[ -x $var ] :如果变量包含的文件可执行,为真

[ -d $var ]: 包含目录为真。

[ -e $var ]:包含的文件存在,为真

[ -c $var ]:包含字符设备,为真

[ -b $var ]:块设备,为真

[ -w $var ]:可写,为真 ; -r可读为真; -L 符号连接,为真。

字符串比较:

[[ $str1 = $str2 ]] :相等返回真。 != 不等返回真。 > 大于返回真 , < 小于返回真。

[[ -z $str1 ]] :空字符串返回真 , -n 非空返回真。

妩媚动人,让我感受到了大自然的神奇。

shell脚本知识(一) 基本知识预备

相关文章:

你感兴趣的文章:

标签云: