在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
以下为部分简单的shell脚本示例
--------------script----------------#!/bin/bashecho "hello world"echo "the time is : $(date)"echo "Let's see who's logging into the system:"whoecho 'The price is $100'--------------script----------------#! /bin/bashdays=10guest="kaite"echo "$guest checked in $days ago"days=5guest="jessica"echo "$guest checked in $days ago"--------------script----------------#! /bin/bashvalue1=10value2=$value1echo The resulting value is $value2--------------script----------------#! /bin/bashvar1=100var2=50var3=45echo "VAR1=$var1"echo "VAR2=$var2"echo "VAR3=$var3"echo "VAR1+VAR2=$[$var1 + $var2]"echo "VAR2-VAR3=$[$var2 - $var3]"echo "VAR1-VAR3*2=$[$var1 - $var3*2]"--------------script----------------#! /bin/bashfor stop in 'ShangHai Hongqiao' Nanjing Xuzhoudo echo Next stop is $stopdone--------------script----------------#! /bin/bashfor NAME in 'jarry' 'harry' 'natasha'do useradd $NAME &>/dev/null echo 'redhat' | passwd --stdin $NAME &> /dev/nulldone--------------script----------------#! /bin/bash# 编辑以下脚本,分析会输出什么结果以及这个脚本如何使用,并验证(这个脚本中用到了特殊变量--位置参数)echo the first number is $1echo the second number is $2echo the sum is $[$1+$2]--------------script----------------#! /bin/bashfor Input in "$@"do echo $Inputdone--------------script----------------#! /bin/bashFIRST=$1SECOND=$2if [ $FIRST -gt $SECOND ] then echo "First > Second"fiif [ $FIRST -lt $SECOND ] then echo "First < Second"fiif [ $FIRST -eq $SECOND ] then echo "First = Second"fi--------------script----------------#! /bin/bashFIRST=$1SECOND=$2if [ -z $FIRST ] || [ -z $SECOND ]thenecho "Your Input is not complete"elif [ $FIRST -gt $SECOND ] then echo "First > Second"elif [ $FIRST -lt $SECOND ] then echo "First < Second"else echo "First = Second"fi--------------script----------------#! /bin/bash#编辑一个脚本,实现如果用户输入参数 foo,则显示 bar,输入参数 bar,则显示 foo, 如果输入其他参数,则显示 errorcase $1 in"foo") echo "bar";;"bar") echo 'foo' echo 'foo1' echo 'foo2' ;;*) echo 'error';;esac--------------script----------------#! /bin/bash#创建 file 文件中所列出的用户,并且所有用户的密码都是 redhat,这个脚本不检查参数的完整性for NAME in $(cat $1)do useradd $NAME &> /dev/null echo 'redhat' | passwd --stdin $NAME &> /dev/nulldone--------------script----------------#! /bin/bash# 创建一个脚本,实现与test13脚本的同样功能,但如果没有参数(只有脚本命令没有文件名), 则显示“Parameter error”,如果文件多于一个,则显示 parameters too long...,只有这个脚本后的文件名有且只有一个时脚本才本正确执行if [ "$#" -gt 1 ] thenecho 'parameters too long...'exit 1fiif [ ! -f "$1" ] ; thenecho 'file do not exist'exit 1fifor NAME in $(cat $1)do useradd $NAME &> /dev/null echo 'redhat' | passwd --stdin $NAME &> /dev/nulldone