shell基础

$0 脚本文件名字

$n 这个脚本的第n个参数值,n=1..9,$9以后就需要大括号了,如${10},${11}... 

$# 这个脚本的参数个数

$@ 是传给脚本的所有参数的列表

$? 执行上一个指令的返回值

$$ PID信息

echo -n 不换行输出

if [ -n str1 ]       当串的长度大于0时为真(串非空) 
if [ -z str1 ]        当串的长度为0时为真(空串) 
if [ str1 ]         当串str1为非空时为真

比较判断操作符:

 -eq 等于   -ne 不等于   -gt 大于   -ge 大于等于   -lt 小于   -le 小于等于

文件比较

 

-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真 
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真 
-w filename 如果 filename可写,则为真 
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-d filename 如果 filename为目录,则为真 
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真 
-w filename 如果 filename可写,则为真 
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。

获取随机数

  1 #!/bin/bash
  2 MAXCOUNT=10
  3 count=1
  4 echo
  5 echo "$MAXCOUNT random numbers:"
  6 echo "------------------------"
  7 while [ "$count" -le $MAXCOUNT ]
  8 do
  9   number=$RANDOM
 10   echo $number
 11   let "count+=1"
 12 done
 13 echo "------------------------"

pushd 目录

pushd后面如果直接跟目录使用,会切换到该目录并且将该目录置于目录栈的栈顶。(时时刻刻都要记住,目录栈的栈顶永远存放的是当前目录。如果当前目录发生变化,那么目录栈的栈顶元素肯定也变了;反过来,如果栈顶元素发生变化,那么当前目录肯定也变了。)

popd不带参数

popd不带任何参数执行的效果,就是将目录栈中的栈顶元素出栈。这时,栈顶元素发生变化,自然当前目录也会发生相应的切换(接上文的执行现场)

 

1 #!/bin/bash
  2 dir1=/home/ngvlcs/wuz/wu1
  3 dir2=/home/ngvlcs/wuz/wu2
  4 
  5 pushd $dir1
  6 echo "now in dir `pwd`"
  7 
  8 pushd $dir2
  9 echo "now in dir `pwd`"
 10 
 11 echo "the top entry in the DIRSTACK array is $DIRSTACK"
 12 popd
 13 echo "now back in dir `pwd`"
 14 
 15 popd
 16 echo "now back in original dir `pwd`"
 17 
 18 exit 0
 19

 

 

  1 #!/bin/bash
  2 #exec echo "Existing \"$0\""
  3 #echo "this will never echo"
  4 #exit 99
  5 #echo $?
  6 
  7 echo
  8 echo "1"
  9 echo "2"
 10 echo "=================================="
 11 echo $0
 12 echo `basename $0`
 13 #sleep 1
 14 #exec $0
 15 #echo "3"
 16 exit 0
 17 

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值