cut命令、case与select语句

cut命令
		常用参数:
		-c			character		字符
		-d			delimiter		分隔符
		-f			field			域(列)
		--output-delimiter			输出分隔符

		例:
		# echo 12345  |cut -c2
		2
		# echo 12345  |cut -c1,4
		14
		# echo 12345  |cut -c2-4
		234
		# ifconfig eth0 |grep Mask |cut -d " " -f12 |cut -d ":" -f2

		# head -1 /etc/passwd | cut -d ":" -f 1,3,4 --output-delimiter="#" 

1.case语句
(2) case语法
	case  "choice" in
		"var1" )
			statement
		;;
		"var2" )
			statement
		;;
		"var3"	)
			statement
		;;
		* )
			statement
	esac

(2) 用法
	从/etc/init.d/httpd里拷的一段
	case "$1" in
	  start)
	        start
	        ;;
	  stop)
	        stop
	        ;;
	  status)
	        status -p ${pidfile} $httpd
	        RETVAL=$?
	        ;;
	  restart)
	        stop
	        start
	        ;;
	 *)
	        echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
	        exit 1
	esac

	--------------------
	例:sshd的脚本
	#!/bin/bash
	case "$1" in
	start)
	#启动sshd服务
		pid=`pidof sshd`
		if [ -z $pid ]; then
			/usr/sbin/sshd
			echo "正在启动 sshd: [确定]"
		else
			echo "服务sshd(pid  $pid)已存在。"
		fi	
		;;

	stop)
	#停止sshd服务
		pid=`pidof sshd`
		if [ -z $pid ]; then
			echo "服务sshd 已停"
		else
			killall sshd &> /dev/null
			echo "停止 sshd: [确定]"
		fi
		;;

	restart)
	#重新启动
		pid=`pidof sshd`
		if [ -z $pid ]; then
			echo "停止 sshd:[失败]"
			/usr/sbin/sshd
			echo "正在启动 sshd:[确定]"
		else
			echo "停止 sshd:[确定]"
			/usr/sbin/sshd
			echo "正在启动 sshd:[确定]"
		fi
		;;
	
	status)
	#查看状态
		pid=`pidof sshd`
		if [ -z $pid ]; then
			echo "服务sshd 已停"
		else
			echo "服务sshd (pid  $pid)正在运行..."
		fi
		;;
	
	*)
	#如果参数不是start|stop|restart|status时,则提示
		echo "用法:/root/ssh1.sh {start|stop|restart|status}"
	esac



	例: 写一个shell脚本,传入一个参数(字母),判断传入的字母是大小还是小写
	#!/bin/bash

	case "$1" in
		    [A-Z] )
		    echo "大写"
		    ;;
		    [a-z] )
		    echo "小写"
		    ;;
		    * )
		    echo "不是字母"
		    exit 1
	esac
	-----------------------------------

	#!/bin/bash

	if [[ "$1" =~ [A-Z] ]];then			-- ~符号是匹配的意思
		    echo "大写"
	elif [[ "$1" =~ [a-z] ]];then
		    echo "小写"
	else
		    echo "不是字母"
	fi



2. select
	select表达式是一种bash的扩展应用,从ksh引进。
2.1 语法

	PS3="prompt"					--使用PS3来输出提示信息
	select var in  choice1 choice2 choice3 ...
	do
		echo "................."
	done

2.2 用select做一个选择菜单
	#!/bin/bash

	PS3="请选择你使用的手机类型"

	select phone in xiaomi huawei iphone samsung lenovo oppo meizu
	do
		case "$phone" in
		        iphone )
		        echo "你使用的是$phone"
		        echo "苹果ios系统"
		        break
		        ;;
		        * )
		        echo "你使用的是$phone"
		        echo "安卓系统"
		        break
		        ;;
		esac
	done

  

posted @ 2019-12-18 22:45  MlxgzZ  阅读(268)  评论(0编辑  收藏  举报