Shell程序设计

 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























评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值