shell基础编程

#!/bin/sh
echo '第一个shell编程' >> /home/liguibing/test/a.txt
echo #输出空行  >> /home/liguibing/test/a.txt
echo '当前在线用户'   >> /home/liguibing/test/a.txt
echo    >> /home/liguibing/test/a.txt
/usr/bin/who   >> /home/liguibing/test/a.txt
echo    >> /home/liguibing/test/a.txt
echo '日期:?   >> /home/liguibing/test/a.txt
date +%F   >> /home/liguibing/test/a.txt


#调式shell编程
#by liguibing


echo '完毕'
echo 
echo '请到/home/liguibing/test/a.txt文件中查看信息

//////////02///////////////////////////////////////////////

#!/bin/bash
# 参数的使用,执行命令:sh shell文件名 参数1 参数2 参数n,


# $0:这个程序的文件名,$1:传的第一个参数,$2:第二个参数,$n:第n个参数
echo '输出本程序名及参数'
echo "文件名:$0,第一个参数:$1"

 

///////////////////////////03//////////////////////////////////////

#!/bin/bash
#特殊变量的使用
# $*:这个程序的所有参数,$#:这个程序所有参数的个数,$$:这个程序的pid
# $!:执行上一个后台命令的pid,$?:执行上一个命令的返回值(返回0时执行成功)


# demo :  命令:sh 本程序文件名 参数一  参数二 参数n
echo "参数个数:$*";
echo "执行状态:$?";
#....

 

///////////////////////////////////////////=04//////////////

#!/bin/bash
#测试变量


#文件变量测试
test -d file #指定文件是否为目录
test -f file #是否为文件
test -e file #文件或目录是否存在
test -x file #是否可执行
test -r file #是否可读
test -w file #是否可写
test -a file #是否存在
test -s file #是否为非0


#字符串
test $str1=$str2  #字符串是否相等
test $str1!=$str2 #字符不相等
test $str  #测试字符串是否为空
test -n str       #字符串不为空
test -z str  #字符串为空


#整数
test int1 -eq int2 # =
test int1 -ge int2 # >=
test int1 -gt int2 # >
test int1 -le int2 # <=
test int1 -lt int2 # <
test int1 -ne int2 # !=

 

///////////////////////////////////////////=05/////////////////////////

#  test -d $1 等价于  [-d $1]


#所以上面代码可以改写为:
if [-d $1] then
 ....
 else
 ....
fi


测试的书写规范:
 [ 条件 测试参数 ]
 demo:
 [ -d $filenam ]  filenam是否为文件
 [ -d `pwd` ]  里面的符号位于键盘上数字键1左边 (笔记本)
 注意:中括号与参数、参数与参数之间必须用空格隔开


#======demo==============
#!/bin/bash
if[$# -ne 2];then
 echo 'sdfsd';
 exit();
 fi


 if{$1 -eq $2];then
  echo $1;
  elif[$1 -lt $2];then
   echo '....'
  elif[$1 -gt $2];then
   echo '....'
  fi
# exit语句:退出程序并返回执行的值,返回0时正常,反之非正常


#==流程语句====
if  条件1 then
   命令
 elif  条件2  then
   命令
  else
  命令
  fi


#多条件联合
 -a :逻辑与
 -o: 逻辑或
#==demo====
 if{$1 -eq $2]
    then
    echo '....'
  elif[-c $1 -o -d $2] #或
    then
    echo '....'
  elif[-f $1 -a -d $2] #且
     then
     echo '....'
   else
     echo '...'
   fi

 

//////////////////////////=06////////////////////////////////

#!/bin/bash


#流程语句 for ... done 
格式:


  for 变量  in  名称表
  do
    命令列表
  done
   
#==demo=============
#!/bin/bash
for $1 in 56 45 4534 3453 4534
do
  echo '.....'
done #结束


# while 语句
while 条件
  do
  命令
  done

 

////////////////////////////////////////////////////////////////07

 

你可能感兴趣的:(shell基础编程)