shell学习笔记

shell入门

入门代码
#! /bin/bash        #选择的解释器
echo "hello world"  #输出
变量
#! /bin/bash 
i=0; #错误写法 i = 0; 不要加空格
echo $i;#变量只有字符串类型,引用需要加 '$'

##常用系统变量
#HOME   
#PWD  当前目录
#USER 当前用户
#SHELL 当前使用的解释器

readonly i=5; #只读变量
##特殊变量
$n #第几个参数
	#! /bin/bash
	echo $1 $2 $3

	执行:./my.sh 1 2 3
	结果:1 2 3
$# #用于循环,总参数的个数
	#! /bin/bash
	echo '$#'=$#
	
	执行:./my.sh 1 2 3 4
	结果:$#=4
$* #所有参数作为整体
$@ #所有参数分开来看
$? #上一个脚本的执行状态 0执行完
运算符
a=5
b=5
echo $[$a+$b] 或者 echo $(($a+$b)) 或者 expr $a + $b
条件判断
[ condition ] #注意前后有空格
a=5
b=5
[ $a = $b] #注意空格
echo $?
结果: 0 正常
b=6
echo $?
结果: 1 失败

比较数值
-eq #等于
-lt
-ne #不等于
-le
-ge
-gt #大于

查看权限
[ -w a.sh ] #查看a是否有执行权限
[ -f a.sh ] #查看文件是否存在
[ -d a.sh ] #查看文件夹是否存在
[ -e a.sh]  #查看是否存在
流程控制
  • if

    格式:

    	if [ 条件判断式 ]	#注意if后面的空格
    		then
    			程序
        elif [ 条件判断式 ]
    		then
    			程序
    	else
    			程序
    	fi  #结束
    

    例子:

     #! /bin/bash
     	if [ $1 -eq 1 ]
    		then
    			echo 11111
        elif [ $1 -eq 2 ]
    		then
    			echo 22222
    	else
    			echo 33333
    	fi  #结束
    	
    	执行:./a.sh 1
    	结果: 11111
    
    #! /bin/bash
    #判断文件bbbb是否存在,不存在创建并且追加一个b作为内容
    if [ -f bbbb ]
    then
            cat bbbb
    else
            touch bbbb
            echo b >> bbbb
    fi
    
  • case

    case $1 in
    		"1")
    		echo 1111
    		;;
    		"2")
    		echo 2222
    		;;
    		*)
    		echo 3333
    		;;
    esac
    
  • for

    格式1:

    for(( 初始值;循环控制条件;变量变化 ))
    	do
    		程序
         done
    

    格式2:

    for i in aaa bbb ccc	#结合 $* $@使用
    do
    	echo $i
    done
    

    例子

    #!/bin/bash
    #累加1到100
    s=0;
    for((i=1;i<=100;i++))
    do
    	s=$[ $s+$i]
    done
    echo $s
    
  • while

    格式:

    while [ 条件判断式 ]
    	do
    		程序
    	done
    

    例子

    #! /bin/bash
    s=0;
    i=0;
    while [ $s -le 100]
    do
    	s=$[ $s+$i ]
    	i=$[ $i+1 ]
    done
    echo $s
    
    read读取控制台输入
    #! /bin/bash
    read -p "请在5秒以内输点东西: " -t 5 i   #执行会,i会是控制台输入的值
    echo $i
    
    -p #提示
    -t #限制时间
    
    
    函数
    [ function ] 函数名[()]  ##中括号内容可以省略,2选一省略
    {
    	Action;
    	[return int;] #返回函数是成功还是失败的  $? 来获取
    }
    

    例子:

    #! /bin/bash
    function aaa()
    {
    echo abcd
    }
    aaa #解释型语言,从上往下运行,所以函数必须先声明,后调用
    
    
    
    ##带参数的函数,需要给用户提示参数个数
    plus()
    {
    if [ $# -lt 2] ## $#参数个数
    then echo "参数不足两个"
    exit
    fi
    echo [ $1 + $2 ]
    }
    
    plus 1 2 #调用
    
    Shell工具

    cut: 文件中负责剪数据

    • cut[选项参数] filename

      -f 列号,提取第几列

      -d 按指定分隔符分割列

      -c 指定具体的字符(第几个)

    • 用法:

    ## 想要: 192.168.100.194
    ## 执行:
    ifconfig | grep Bcast
    ## 结果:
    inet 192.168.100.194  netmask 255.255.255.0  broadcast 192.168.100.255
    ifconfig | grep Bcast | cut -d : -f 2 | cut -d " " -f 1
    ## 结果: 192.168.100.194   #注意最后切割" " 会分成三段,第二段啥也没有
    ifconfig | grep Bcast | cut -d : -f 2 | cut -c 2-8 ##取出第二个到第八个
    

    sed

    awk

    sort

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值