现在编程都讲究面向对象,处理的对象不再是最底层的变量,结构等.所以在日常也要注意实用脚本片段的积累.
校验参数
情景描述
有些脚本文件需要传入一些参数,那么就需要在脚本里对参数进行预处理,使得用户更好的使用该脚本.脚本片段
1if [ "$#" -ne 1 ] 2then 3echo "Incorrect number of arguments" 4echo "Usage: command arg1" 5exit 1 6fi
`
等待程序执行
情景描述
编程中有些命令执行需要很耗时间和资源,需要提早运行.但是有时还需要等待该命令,对其结果进行进一步处理,此时就需要这样的代码段.脚本片段
1prog1 & 2# 获取prog1的pid 3pid = $1 4# 等待后台prog1执行完继续脚本 5wait $pid 6...
`
提示用户输入
情景描述
智能提示,让shell脚本更加人性化.脚本片段
1#!/bin/bash 2read -p "please type the password:" PW 3echo $PW
`
更改用户密码
情景描述
更改登录用户密码,懒得每次输入新旧密码脚本片段
1#!/bin/bash 2(echo "curpw"; sleep 1; echo "newpw"; sleep 1; echo "newpw") | passwd
`
ACM检验
情景描述
ACM中需要对代码的测试数据进行验证.脚本片段
1#!/bin/bash 2while true 3do 4 #生成随机变量到input文件中,r可以是生成脚本 5 ./r > input 6 ./a < input > output.a 7 ./b < input > output.b 8 diff output.a output.b 9 if [ $? -ne 0 ] 10 then 11 break 12 fi 13done 14 15
跨系统脚本
情景描述
对于不同的Linux发行版本,它们的包管理命令是不同的,比如ubuntu用apt-get命令他,centos用yum命令,mac系统用homebrew命令,但是它们都能运行shell脚本,所以shell脚本可以针对不同的发行版本安装不同的软件,以完成系统的配置。脚本片段
1#!/bin/bash 2if which apt-get > /dev/null; then 3 echo "You are using Ubuntu!" 4 sudo apt-get install-y git 5elif which yum > /dev/null; then 6 echo "You are using CentOs!" 7 sudo yum install -y git 8elif which brew > /dev/null; then 9 echo "You are using Mac OS X!" 10 brew install git 11fi