• shell入门(一)


    echo -n 不换行输出
    echo -e 处理特殊字符
    read -p “please input a number” x 提示输入一个数,并赋值给x
    case 用法

    case $x in
        1)  echo 'You select 1'
        ;;
        2)  echo 'You select 2'
        ;;
        *)  echo 'You do not select a number between 1 to 4'
        ;;
    esac

    判断
    if [ ansge3aans -le 9 ]
    使用函数

    #!/bin/sh
    RED_COLOR='E[1;31m'
    GREEN_COLOR='E[1;32m'
    YELLOW_COLOR='E[1;33m'
    BLUE_COLOR='E[1;34m'
    RES='E[0m'
    function usage(){
        echo "USAGE: $0 {1|2|3|4}"
        exit 1
    }
    function menu(){
        cat <<END
        1.apple
        2.pear
        3.banana
    END
    }
    function chose(){
        read -p "pls input your choice:" fruit
        case "$fruit" in
            1)
              echo -e "${RED_COLOR}apple${RES}"
              ;;
            2)
              echo -e "${GREEN_COLOR}pear${RES}" 
              ;;
            3)
              echo -e "${YELLOW_COLOR}banana${RES}" 
              ;;
            *)
              usage
        esac
    }
    function main(){
         menu
         chose
    }
    main
    
    统计传入的参数个数 脚本名字
    $#	$0
    
    连接两个字符串
    v1="hello"
    v2="world"
    v3=$v1$v2
    
    计算两个数的和
    A=1
    B=2
    let v3=$A+$B
    echo $v3
    echo $(($A+$B))  # 方法 2
    echo $[$A+$B]    # 方法 3
    expr $A + $B     # 方法 4
    echo $A+$B | bc  # 方法 5
    awk 'BEGIN{print '"$A"'+'"$B"'}'   # 方法 6
    
    如何获取某一行(取第五行)
    方法一:head -5 test.txt|tail -1
    方法二:cat test.txt|sed -n '7p'  //-n是指只显示生效的那行
    
    后台运行
    nohup  command 永久执行,和用户端没有关系,断开ssh连接也不会影响到其执行,该命令执行之后会产生子文件,该子文件位于当前目录,相当于日志文件
    command &      后台执行,当用户推出(挂起)的时候,命令行也会跟着退出
    比较巧妙的命令是
    nohup command &     使命令永久在后台执行
    
    怎么注释语句
    注释一行#
    注释多行
    <<COMMENT
    我要注释的内容
    COMMENT '和"以及`(反引号)区别 ' 把括起来的部分当做字符串 " 如果字符串里有变量,那么会使用变量的值来代替该变量 ` 把括起来的部分当做命令执行 调用另一个脚本 exec ./a.sh //执行之后,该进程剩下的部分不会再执行,而是转至执行a.sh脚本 source ./a.sh //执行完该脚本之后,继续回来继续执行剩下的脚本 fork ./a.sh //直接运行脚本,会以当期那shell为父进程,产生新的进程 使用echo命令获取字符串变量的一部分 echo ${variable:x:y} //取字符串variable中的x到y的位置的字符 根据某个字符提取部分数据 variable="User:123:321:/home/dir/aa" echo ${variable#*:*:} 或者 echo ${variable##*:} 运行结果 321:/home/dir/aa 如果只需要显示User echo ${variable%:*:*:*} 或者 echo ${variable%%:*} xargs的使用 执行下列命令会分行显示 -n1表示每次传一个参数过去,我刚开始的时候用,把参数隔开了,然后就没有分行显示 echo '1 , 2 3 4'|xargs -n1 修改bash的标准分割符为: IFS=":" 获取变量的长度 ${#variable} 打印变量的最后5个字符 echo ${variable: -5} //注意-5前有个空格 ${variable:-10} //如果variable未赋值,则输出5,如有赋值,只输出原值 转换为大写 tr '[:lower:]' '[:upper:]' 删除字符串中的所有空格 echo $string|tr -d " " 写出输出数字 0 到 100 中 3 的倍数(0 3 6 9 …)的命令 ? for i in {0..100..3}; do echo $i; done [ $a == $b ] 和 [ $a -eq $b ] 有什么区别 [ $a == $b ] - 用于字符串比较 [ $a -eq $b ] - 用于数字比较 如何检查字符串是否以字母 "abc" 开头 ? [[ $string == abc* ]] 如何列出以 ab 或 xy 开头的用户名 ? egrep "^ab|^xy" /etc/passwd|cut -d: -f1 $* 和 $@ 有什么区别* $* - 以一个字符串形式输出所有传递到脚本的参数 $@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数
  • 相关阅读:
    【2019/5/24】周进度报告
    第一阶段意见汇总以及改进
    【2019/5/18】周进度报告
    用户体验评价-搜狗输入法
    第二阶段冲刺1
    第十四周总结
    找水王
    第十三周总结
    程序员修炼之道-从小工到专家阅读笔记02
    第十二周总结
  • 原文地址:https://www.cnblogs.com/biaopei/p/7730585.html
Copyright © 2020-2023  润新知