您的位置:首页 > 运维架构 > Shell

Shell程序设计

2012-05-02 16:28 232 查看
cat t1

echo $1 $2 $3
set m1 m2 m3
echo $1 $2 $3

sh t1 -3 a1 a2 a3

a1 a2 a3

m1 m2 m3

Shell 中双引号(" ") 单引号(' ') 倒引号(` `)

1.双双引号 除了$ ,倒引号, \ 保留其特殊功能外 其余做普通字符处理

2.单引号所有字符都作为普通字符

3.倒引号 `pwd` 解释命令 如果嵌套 内层必须要(\)转义 my = `echo My = \`pwd\``

顺序操作符

逻辑与(&&)成功返回0 步成功返回1

文件测试

-r file 可读

-w file 可写

-x file 可执行

-f file 普通文件

-d file 目录文件

-p file FIFO文件

-s file 不是空文件

字符串测试

str 不是空字符串

str1 = str2 str1等于str2(等号前后有空格)

str1 != str2 str1不等与str2

-n str 长度不为0

-z str 长度为0

eg: [ "$1" = "$2" ] or test "$1" = "$2"

[ "$1" = "Yes" ] or test "$1" = "Yes"

数值测试

n1 -eq n2 n1==n2

n1 -ne n2 n1!=n2

n1 -lt n2 n1<n2

n1 -le n2 n1<=n2

n1 -gt n2 n1>n2

n1 -ge n2 n1>=n2

[ "$1" -gt 10 ] or test "$1" -gt 10

逻辑操作符号组合测试语句

! 非

-a 与(and)

-o 或 (or)

( ) 优先括号前后有空格 并且用\ 转义

eg:

[ ! "$1" -le 0 ] or ! test "$1" -le 0

[ -f "$1" -a -w "$1"] or test -f "$1" -a -w "$1"

[ \( "$a" -gt 0 -a "$a" -lt 10 \) -a "$a" -ne 5 ]

case

case $1 in

file) echo "is file" ;;

dir) echo "is dir" ;;

*) echo "others" ;;

esac

for

for people in Tom Jack John Lucy

do

echo $people

done

for i in *.c

do

cat $i

done

dir=$1

if [ -d $dir ]

then cd $dir

for name in $ *

do

if [ -f $name ]

then cat $name

echo "End of ${dir}/$name"

else echo "Invalid file name:${dir}/$name"

fi

done

else echo "Bad directory name:$dir"

fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: