shell一些

#!/bin/bash
#输入用户的姓名,并且显示出来
#2008/10/21
read -p "请输入您的姓:" firstname
read -p "请输入您的名字:" lastname
echo "您的姓名是:$firstname $lastname"

#!/bin/bash
#利用date建立文件
#2008/10/21
#让用户输入文件名称,并获取fileuser变量
echo -p "I will use 'touch' command to create 3 files"
read -p "Please input file name what you want:" fileuser
#使用变量功能分析是否设置的文件名?
filename=${fileuser:-"filename"}
#开始使用date命令来获取所需要的文件名
date1=`date +%Y%m%d`
file1="$filename""$date1"
touch $file1

数值运算的方法;var=$((运算内容))

test用法;test -e filename
-e :该文件名是否存在
-f:该文件名是否为文件
-d:该文件名是否为目录
-r:检查该文件名是否可读
-w:检查该文件名是否可写
-x:检查该文件名是否可执行
-s:检查该文件名是否为空白文件
俩个整数的判断:
-eq;两数值相等
-ne:两数值不相等
-gt:n1大于n2
-lt:n1小于n2
-ge:n1大于等于n2
-le:n1小于等于n2

test -z string  判断字符串是否为0,若为空字符串,返回true
test -n string   若为空字符串,返回false
test str1=str2   
test str1!=str2

-a:(and)两个条件同时成立
-o:两个条件任何一个成立
!:条件求反
例子:
#!/bin/bash
#首先让用户输入一个文件名
#这个文件是否存在?若不存在,则显示"不存在",并且中断程序
#若存在,则判断是否是目录?输出"是文件" "是目录?"
#判断执行者对这个文件或者目录的权限
#2008/10/21
read -p "请输入文件名:" filename
test -z $filename && echo "请输入文件名"
test ! -e $filename && echo "文件不存在" && exit 0
test -f $filename && filetype="是文件"
test -d $filename && filetype="是目录"
test -r $filename && perm="可读"
test -w $filename && perm="$perm 可写"
test -x $filename && perm="$perm 可执行"
echo "文件:$filename是:""$filetype"
echo "用户的权限是: $perm"


条件判断符号[]
例子:[ "$home" == "$male" ]
注意要有空格

shell脚本的默认的变量
例子:/sbin/shutdown -h now
     $0             $1 $2

条件判断:
#检查输入的参数是否为hello
#如果是,就显示"hello, how are you?"
#如果没有加入任何参数,就提示必须输入参数
#若不是hello,提示仅使用hello作为参数
if [ "$1" == "hello" ] ; then
  echo "hello,how are you?"
elif [ "$1" == "" ]; then
  echo "you must input parameter!"
else
  echo "you must input hello"
fi

#判断参数是否为hello
case $1 in
    "hello")
          echo "hello, how are you?"
          ;;
    "")
          echo "you must input parameters!"
          ;;
    *)
         echo "you must input hello"
          ;;
esac

#函数体中的$1指的是函数后面跟着的参数
function println(){
 echo "your choice is $1(函数后面的参数,如1)"
}
case $1(命令中的参数) in
      "one")
           println 1
           ;;
      "two")
            println 2
           ;;
        *)
           echo "hehhehehhe"
           ;;
esac

while[ "$yn" != "yes" ] && [ "$yn" != "YES" ]
do
  read -p "please input yes/no to stop this programe:" yn
done


s=0
for(( i=1; i<=100; i=i+1 ))
do
  s=$(($s+$i))
done
echo "the result '1+2+...+100='$s"


for animal in dog cat elephant
do
  echo "there are $animal""s"
done


#找出目录内的文件名的权限
read -p "please input a dirctory :"dir
if[ "$dir" == "" ] || [ ! -d "$dir" ] ; then
    echo "the $dir id not exsit in your system!"
    exit 1
fi
filelist=`ls $dir`
for filename in $filelist
do
  perm=""
  test -r "$dir/$filename" && perm="可读"
  test -w "$dir/$filename" && perm="$perm 可写"
  test -x "$dir/$filename" && perm="$perm 可执行"
  echo  "the file $filename's permission is $perm"
done

shell脚本的调试
sh -n sh01.sh  检查语法
sh -x sh01.sh  将使用的脚本内容显示在屏幕上,很有用

你可能感兴趣的:(shell,职场,休闲)