Home » 未分类 » Linux 学习笔记 八

Linux 学习笔记 八

参数,选项

模拟 ls -a

ls -l

ls -la

eg:

#!/bin/bash

if [ $# -lt 2 ]

then

echo “the grgument less than 2”

exit 1

fi

case $1 in

-a)

args=” -a $2″

;;

-l)

 

args=” -l $2″

;;

-al|-la)

args=” -al $2″

;;

*)

echo “option is error”

exit 2

;;

esac

ls $args

 

专门处理参数选项的命令

getopts

 

输入输出

echo

printf 带格式输出

eg:

#!/bin/bash

var=3.141592654

str=”hello word”

printf “info:%+016s\n” “$str”

printf “data:%+016f\n” “$var”

输入

read

<

文件描述符

一个编号就代表了一个文件

标准输入STDIN 0

标准输出STDOUT 1

标准错误 STDERR 2

 

今天早上睡着了,都没有记录笔记。。。累死个人~!!!

 

type 查看命令是内部命令还是外部命令

 

 

exec 参数

功能:当SHELL 执行到exec语句时,不会去创建新的子进程,而是转去执行制定的命令,当指定的命令执行完时,该进程,也就是最初的SHELL 就终止了,exec 后面的语句就不再执行了。

重定向来至SHELL 脚本内部的文件描述符

 

>a.txt 也是清空a.txt

 

eval SHELL特殊字符通过变量替换或命令替换被插入时,要用到eval

eg:

OUTPUT=”>a.txt”

eval echo hello $OUTPUT

 

readonly 定义只读变量 使用unset不能修改,var=new 也不修改不了

 

shift 语句

shift 语句在每使用一次时,位置变量向左移动一位,直到减为0

wait 语句

SHELL等待后台启动的所有子进程结束,返回值总为真

eg:

 

#!/bin/bash

date

 

sleep 5 &

 

cal

echo “finished”

 

wait

 

set 语句

shell脚本的任何地方启动或取消调试

getopts 处理符合的选项

test 条件判断

trap 和信号有关的东西

 

内置符号命令

. 执行文件

:空操作,返回状态值为0

&后台工作

$()命令替换

(())算术表达式计算,let(被括起来值中包含=时使用)

$(())算术扩展(不用于被括起来的值中,包括=的情形)

[]同test

[[]]条件表达式 类似与[]

expr 也是算术运算

 

shell 分组的方法

() 新开一个小shell 顺序执行()里面的指令,(cmd1;cdm2;cdm3;)

{} 在当前的SHEL顺序执行当前的SHELL命令{cmd1;cmd2,cmd3;

 

函数

函数名 (){

函数体

 

function 函数名 () {

函数体

}

 

 

eg:

#!/bin/bash

 

function fun(){

date

echo “this is a function!”

cal

}

 

fun

 

 

 

不同文件内函数调用

eg

 

function2.sh

 

#!/bin/bash

 

i=0

compare(){

num1=$1

num2=$2

if [ $num1 -eq $num2 ]

then

echo “the two numbers is equal”

return 0

elif [ $num1 -lt $num2 ]

then

echo “the numbers of:$num2 bigest to the numbers of :$num1”

i=$num2

return 1

else

echo “the numbers of:$num1 biggest to numbers of :$num2”

i=$num1

return 2

fi

}

 

 

 

 

 

function3.sh

#!/bin/bash

. function2.sh

compare 10 20

 

 

调试

格式 bash –选择项

-n 测试SHELL 脚本的语法结构,只读取不执行

-x 进入跟踪方式,执行命令时把命令和它们的参数显示出来

-e 非交互式,如果一个命令失败就立即推出

-l交互式

-k从环境变量中读取命令的参数

-r 限制方式,不能执行如下操作

-t 执行名后退出

-u 置换时把为设置的变量看作出错

-v verbose 当读入SHELL输入行时把他们显示出来

set 使用set命令,用户可以在shell脚本的任何地方启动或取消调试

启动:set –选择项

禁止:set +选择项

eg:

#!/bin/bash

num=1

sum=0

set -x

while [ $num -le 5 ]

do

sum=$(($sum+$num))

num=$(($num+1))

done

set +x

 

echo “sum:$sum”

 

信号处理

查看所有信号 kill -l

ps -e里出所有进程

ps -ef 所有进程的详细信息

 

trap – 重置所有信号

 

This entry was posted in 未分类. Bookmark the permalink.