美文网首页
Shell 简单编程

Shell 简单编程

作者: 嫩牛_软件测试_笔记 | 来源:发表于2018-09-27 14:12 被阅读0次

*   [string.sh](http://string.sh)
    *   name='nana'
    *   echo My name is $name
    *   :<<!
    *   echo 这是多行注释
    *   echo "ni"
    *   echo "ni"
    *   echo "ni"
    *   !

*   [expr.sh](http://expr.sh)
    *   a=4
    *   b=7
    *   #c=$(($b-$a))
    *   #c=$((b-a))
    *   #c=`expr $((b-a))`
    *   #c=$[b-a]
    *   let c=b-a
    *   echo $c

*   [root@localhost opt]# cat a2.sh
    *   #!/bin/bash
    *   a=3
    *   b=5
    *   if test $a -eq $b
    *   then
    *   echo "a=b"
    *   else
    *   echo "a!=b"
    *   fi

*   [root@localhost opt]# cat a3.sh
    *   #!/bin/bash
    *   for i in a b c d e f
    *   do
    *   echo $i
    *   done

*   [root@localhost opt]# cat a4.sh
*   #!/bin/bash
*   a=(1 2 3 4 5 6)
*   for i in a
*   do
*   echo ${a[0]}
*   echo ${a[1]}
*   echo 打印所有数组元素:${a[*]}
*   echo a数组长度为:${#a[*]}
*   done
    *   [root@localhost opt]# sh a4.sh
    *   1
    *   2
    *   打印所有数组元素:1 2 3 4 5 6
    *   a数组长度为:6

*   [root@localhost opt]# cat a5.sh
    *   #!/bin/bash
    *   a=1
    *   #注意,while(( )) 中间都是要有空格的,否则报错
    *   while(( $a<=5 ))
    *   do
    *   echo $a
    *   let "a++"
    *   done

*   [root@localhost opt]# cat a6.sh
    *   #!/bin/bash
    *   echo 'Press <CTRL-D> to quit'
    *   echo -n 'Input a film name:'
    *   while read FILM
    *   do
    *   echo "Yes!$FILM is a good film"
    *   done

*   [root@localhost opt]# cat a7.sh
    *   #!/bin/bash
    *   a=0
    *   until [ ! $a -lt 10 ]
    *   do
    *   echo $a
    *   let a++
    *   done

*   [root@localhost opt]# cat a8.sh
*   #!/bin/bash
*   echo 'Type 1-4:'
*   echo 'Your type is:'
*   read num
*   case $num in
*   1)echo '1'
*   ;;
*   2)echo '2'
*   ;;
*   3)echo '3'
*   ;;
*   4)echo '4'
*   ;;
*   *)echo 'None'
*   ;;
*   esac
    *   #不用跟Python一样讲究缩进

*   [root@localhost opt]# cat a9.sh
    *   #!/bin/bash
    *   while :
    *   do
    *   echo -n "输入 1 到 5 之间的数字:"
    *   read aNum
    *   case $aNum in
    *   1|2|3|4|5) echo "你输入的数字为 $aNum!"
    *   ;;
    *   *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
    *   break
    *   ;;
    *   esac
    *   done
        *   [root@localhost opt]# sh a9.sh
        *   输入 1 到 5 之间的数字:4
        *   你输入的数字为 4!
        *   输入 1 到 5 之间的数字:2
        *   你输入的数字为 2!
        *   输入 1 到 5 之间的数字:4
        *   你输入的数字为 4!
        *   输入 1 到 5 之间的数字:9
        *   你输入的数字不是 1 到 5 之间的! 游戏结束

*   [root@localhost opt]# cat a10.sh
    *   #!/bin/bash
    *   while :
    *   do
    *   echo -n "输入 1 到 5 之间的数字: "
    *   read aNum
    *   case $aNum in
    *   1|2|3|4|5) echo "你输入的数字为 $aNum!"
    *   ;;
    *   *) echo "你输入的数字不是 1 到 5 之间的!"
    *   continue
    *   echo "游戏结束"
    *   ;;
    *   esac
    *   done
        *   [root@localhost opt]# sh a10.sh
        *   输入 1 到 5 之间的数字: 2
        *   你输入的数字为 2!
        *   输入 1 到 5 之间的数字: 4
        *   你输入的数字为 4!
        *   输入 1 到 5 之间的数字: 10
        *   你输入的数字不是 1 到 5 之间的!
        *   输入 1 到 5 之间的数字: 555
        *   你输入的数字不是 1 到 5 之间的!
        *   输入 1 到 5 之间的数字: ^C

*   [cat.sh](http://cat.sh)
    *   #!/bin/bash
    *   #将当前路径下所有的.sh格式的文件内容都追加到Test.sh文件中
    *   echo `cat *.sh > [Test.sh](http://Test.sh)`

*   [cut.sh](http://cut.sh)
    *   # 截图Mysql的临时密码
    *   grep 'temporary password' /var/log/mysqld.log | cut -d ":" -f 4 | tail -1
        *   [root@localhost html]# echo $PATH
        *   /usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/admin/bin
        *   [root@localhost html]# echo $PATH | cut -d ":" -f 2
        *   /usr/local/bin
        *   [root@localhost html]# echo $PATH | cut -d ":" -f 2,4
        *   /usr/local/bin:/usr/bin
        *   [root@localhost html]# echo $PATH | cut -d ":" -f 2,3,4
        *   /usr/local/bin:/bin:/usr/bin
        *   [root@localhost html]# echo $PATH | cut -c 2-5
        *   usr/
        *   [root@localhost html]# echo $PATH | cut -c 2-
        *   usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/admin/bin

*   [expect.sh](http://expect.sh)
    *   #!/usr/bin/expect
        *   # yum install expect -y
    *   set timeout 30
    *   spawn mysql -u root -p
    *   sleep 1
    *   set temp [exec sh -c {grep 'temporary password' /var/log/mysqld.log | cut -d ":" -f 4 | tail -1 | cut -c 2-}]
    *   puts "$temp"
    *   sleep 1
    *   send "$temp\r"
    *   interact
    *   #sql="show databases"
    *   #$mysql -e "$sql"
        *   # [调用shell脚本test.sh](http://调用shell脚本test.sh)
        *   # set testResult [exec sh -c {./[test.sh](http://test.sh)}]

*   [ls.sh](http://ls.sh)
    *   #!/bin/bash
    *   echo $(ls)

*   #!/bin/bash
*   [add1.sh](http://add1.sh)
    *   a=1
    *   b=2
    *   c=$((a+b))
    *   echo $c

*   [add2.sh](http://add2.sh)
    *   a=1
    *   b=7
    *   c=`expr $a + $b`
        *   # 注意:`expr $a + $b`这里面的$a + $b 是有空格的,连在一起的结果是1+7,而不是8
    *   echo $c

*   [add3.sh](http://add3.sh)
    *   #!/bin/bash
    *   a=3
    *   b=4
    *   let c=a+b
    *   echo $c

*   [head_tail.sh](http://head_tail.sh)
    *   #!/bin/bash
    *   echo $(head -5 a1.txt | tail -1)

*   [sed_all_cat.sh](http://sed_all_cat.sh)
    *   #!/bin/bash
    *   sed -i 's/name/cdtest/g' a2.txt
    *   echo $(cat a2.txt)

*   [sed_line_cat.sh](http://sed_line_cat.sh)
    *   #!/bin/bash
    *   sed -i '5s/name/cdtest/g' a2.txt
    *   echo $(cat a2.txt)

*   [grep_head_string_trip.sh](http://grep_head_string_trip.sh)
    *   #!/bin/bash
    *   a=$(grep name a1.txt | head -1)
    *   echo ${a:3:2}
        *   # 第4和第5个字符
    *   echo "等待5秒钟"
    *   sleep 5
    *   echo "5秒钟已到"
        *   # sleep : 默认为秒。
            *   # sleep 1s 表示延迟一秒
            *   # sleep 1m 表示延迟一分钟
            *   # sleep 1h 表示延迟一小时
            *   # sleep 1d 表示延迟一天
                *   # 等待上1个命令执行完之后,再执行下一个命令
                    *   #!/bin/sh
                    *   command 1
                    *   output=`command 2`
                    *   command 3

*   [ou1.sh](http://ou1.sh)
    *   for i in `seq 1 100`
    *   do
    *   if [ $((i%2)) -eq 0 ]
    *   then
    *   echo $i
    *   fi
    *   done

*   [ou2.sh](http://ou2.sh)
    *   for((i=2;i<=100;i=i+2))
        *   # i=i+2 等同于 i+=2
    *   do
    *   echo $i
    *   done

*   [ou3.sh](http://ou3.sh)
    *   for i in {2..100..2}
    *   do
    *   echo $i
    *   done

*   [sum_ji_sum_ou.sh](http://sum_ji_sum_ou.sh)
    *   #!/bin/bash
    *   echo $(ls)
    *   sum_ji=0
    *   sum_ou=0
    *   for i in $(seq 1 100)
    *   do
    *   if [ $((i%2)) -eq 1 ]
        *   # 也可以:if [ $((i%2)) == 1 ]
        *   # 还可以:if [ $((i%2)) = 1 ]
    *   then
    *   ((sum_ji=sum_ji+i))
        *   # 也可以:((sum_ji+=i))
    *   else
    *   ((sum_ou=sum_ou+i))
    *   fi
    *   done
    *   echo "1-100所有奇数之和为: $sum_ji"
    *   echo "1-100所有偶数之和为:$sum_ou"
        *   # 也可以:echo 1-100所有偶数之和为:$sum_ou

*   [tgz_bz2_zip_file_directory.sh](http://tgz_bz2_zip_file_directory.sh)
    *   #!/bin/bash
    *   if [ ! -f "a.tgz" -o ! -f "a.bz2" -o ! -f "a.zip" ];then
    *   echo "a.tgz a.bz2 a.zip 不存在"
    *   else
    *   rm -rf a.tgz a.bz2 a.zip
    *   fi

    *   tar -zcvf a.tgz *.txt *.sh
    *   tar -jcvf a.bz2 *.txt *.sh
    *   zip a.zip *.txt *.sh

    *   if [ ! -d "a1" -o ! -d "a2" -o ! -d "a3" ];then
    *   echo "目录a1 a2 a3不存在"
    *   else
    *   rm -rf a1 a2 a3
    *   fi

    *   mkdir a1 a2 a3
    *   tar -zxvf a.tgz -C a1/
    *   tar -jxvf a.bz2 -C a2/
    *   unzip -o a.zip -d a3/

*   [99.sh](http://99.sh)
    *   #!/bin/bash
    *   #echo -n 不换行
    *   #echo -e 处理特殊字符
    *   echo "This is the multiple table."
    *   for((i=1;i<=9;i++))
    *   do
    *   for((j=1;j<=i;j++))
    *   do
    *   echo -ne "$i*$j=$((i*j))\t"
    *   done
    *   echo
    *   done

*   [leap_year_2.sh](http://leap_year_2.sh)
    *   #! /bin/bash
    *   echo -n Input year to judge if it is a leap year:
    *   read year
    *   let "y1=$year % 4"
    *   let "y2=$year % 100"
    *   let "y3=$year % 400"
    *   if [ "$y1" -eq 0 -a ! "$y2" -eq 0 -o "$y3" -eq 0 ]
    *   then
    *   leap=1
    *   else
    *   leap=0
    *   fi
    *   #if [ "$leap" -eq 1 ];  这里"$leap"与不加引号一样OK
    *   if [ $leap -eq 1 ];
    *   then
    *   echo "$year is a leap year"
    *   else
    *   echo "$year is not a leap year"
    *   fi

*   [root@localhost html]# cat b.sh
    *   #!/bin/bash
    *   # 批量导入SQL文件
    *   p="/tmp" //目录下全是sql文件
    *   dbUser='root'
    *   dbPassword='123'
    *   dbName='zh'
    *   cd $p;
    *   for f in `ls $p/*.sql`
    *   do
    *   echo $f;
    *   mysql -u $dbUser -p$dbPassword -f $dbName -e "source $f";
    *   mv $f $f.done;
    *   done
    *   echo 'finished!'

*   [root@localhost html]# cat change_pwd.sh
    *   #!/bin/bash
    *   #交互修改密码
    *   set timeout 10
    *   NPASS="123456a"
    *   expect << EOF
    *   spawn passwd
    *   expect "New password:"
    *   send "${NPASS}\r"
    *   expect "Retype new password:"
    *   send "${NPASS}\r"
    *   expect eof;
    *   EOF

*   [root@localhost html]# cat mysql_temp_pwd_expect.exp
    *   #!/usr/bin/expect
    *   set timeout 30
    *   spawn mysql -u root -p
    *   sleep 1
    *   set temp [exec sh -c {grep 'temporary password' /var/log/mysqld.log | cut -d ":" -f 4 | tail -1 | cut -c 2-}]
    *   puts "$temp"
    *   sleep 1
    *   send "$temp\r"
    *   interact

*   [root@localhost abc]# vi a1.sh
    *   #!/bin/bash
    *   #1970-01-01-00:00:00
    *   start_time=`date +%s`
    *   echo "Start to run shell script..."
    *   sleep 5
    *   for i in `ls /var/www/html`
    *   do
    *   echo $i
    *   done
    *   sleep 5
    *   echo "Scripts run over..."
    *   end_time=`date +%s`
    *   cost_time=$((end_time-start_time))
    *   echo "Start time is: $start_time, End time is:$end_time, the totle cost time is:$cost_time seconds!"

*   [root@localhost html]# cat test.sh
    *   #!/bin/bash
    *   echo -e "\033[0m none \033[0m"
    *   echo -e "\033[30m black \033[0m"
    *   echo -e "\033[1;30m dark_gray \033[0m"
    *   echo -e "\033[0;34m blue \033[0m"
    *   echo -e "\033[1;34m light_blue \033[0m"
    *   echo -e "\033[0;32m green \033[0m"
    *   echo -e "\033[1;32m light_green \033[0m"
    *   echo -e "\033[0;36m cyan \033[0m"
    *   echo -e "\033[1;36m light_cyan \033[0m"
    *   echo -e "\033[0;31m red \033[0m"
    *   echo -e "\033[1;31m light_red \033[0m"
    *   echo -e "\033[0;35m purple \033[0m"
    *   echo -e "\033[1;35m light_purple \033[0m"
    *   echo -e "\033[0;33m brown \033[0m"
    *   echo -e "\033[1;33m yellow \033[0m"
    *   echo -e "\033[0;37m light_gray \033[0m"
    *   echo -e "\033[1;37m white \033[0m"
    *   echo -e "\033[0m none \033[0m"
    *   echo -e "\033[0m none \033[0m"
    *   echo -e "\033[0m none \033[0m"
    *   echo -e "\033[0m none \033[0m"
    *   echo -e "\033[0m none \033[0m"
    *   echo -e "\033[40;37m 黑底白字 \033[0m"
    *   echo -e "\033[41;30m 红底黑字 \033[0m"
    *   echo -e "\033[42;34m 绿底蓝字 \033[0m"
    *   echo -e "\033[43;34m 黄底蓝字 \033[0m"
    *   echo -e "\033[44;30m 蓝底黑字 \033[0m"
    *   echo -e "\033[45;30m 紫底黑字 \033[0m"
    *   echo -e "\033[46;30m 天蓝底黑字 \033[0m"
    *   echo -e "\033[47;34m 白底蓝字 \033[0m"
    *   echo -e "\033[4;31m 下划线红字 \033[0m"
    *   echo -e "\033[5;31m 红字在闪烁 \033[0m"
    *   echo -e "\033[8m 消隐 \033[0m "

*   [root@localhost html]# vi test.sh
    *   #!/bin/bash
    *   LingXing(){
    *   #read -p "输入菱形半径:" r
    *   r=2
    *   for((y=0; y<=2*r; y++))
    *   do
    *   for((x=0; x<=2*r; x++))
    *   do
    *   #if ((y==-x+r || y==-x+3*r || y==x+r || y==x-r))  空心
    *   if ((y>=-x+r && y<=-x+3*r && y<=x+r && y>=x-r))   #实心
    *   then
    *   echo -n "*"
    *   else
    *   echo -n " "
    *   fi
    *   done
    *   echo ""
    *   done
    *   }
    *   #Function to use in shell like as follows
    *   LingXing


相关文章

  • Shell 编程的 Hello World

    什么是 Shell?简单来说,Shell 编程是对 Linux 命令的逻辑化处理。 来看看 Shell 编程是如何...

  • Shell 编程的 Hello World

    什么是 Shell?简单来说,Shell 编程是对 Linux 命令的逻辑化处理。 来看看 Shell 编程是如何...

  • Shell学习笔记-基础入门

    走进 Shell 编程的大门 什么是 Shell? 简单来说,Shell编程就是对一堆Linux命令的逻辑化处理。...

  • [shell]:为什么要学习shell

    shell:what? why?how? 编程思想 shell编程遵从UNIX哲学:把复杂问题分解成简单的小问题,...

  • Shell 简单编程

  • shell 案例

    Shell编程一 Shell防范ARP攻击 Shell编程二 Shell防范DDos攻击 Shell编程三 ...

  • shell 第一天

    shell编程初识 1.1 shell编程初识 shell的定义 Shell 是命令解释器 Shell 也是...

  • shell编程其实真的很简单(一)

    shell编程其实真的很简单(一) 如今,不会Linux的程序员都不意思说自己是程序员,而不会shell编程就不能...

  • 78.shell编程

    shell编程 Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Pyth...

  • 2019-01-25

    Linux系统Shell编程指南 前言 适合人群:有类似C编程基础的人 一、Shell编程介绍 Shell解释型语...

网友评论

      本文标题:Shell 简单编程

      本文链接:https://www.haomeiwen.com/subject/jzseoftx.html