shell实例(五)

    技术2022-05-19  22

    1.$*和$@的不一致行为

     #! /bin/shset -- "First one" "Second" "Third:one" "" "Fifth: :one" ------设定$1,$2等参数

    echo "========1=========="echo 'IFS unchanged,using "$*"'c=0for i in "$*"do echo "$((c+=1)) : [$i]"doneecho "=======2==========="

    echo 'IFS unchanged using $*'c=0for i in $*do echo "$((c+=1)) : [$i]"doneecho "===========3==========="

    echo 'IFS unchanged,using "$@"'c=0for i in "$@"doecho "$((c+=1)): [$i]"doneecho "======4======="

    echo 'IFS unchanged,using $@'c=0for i in $@do echo "$((c+=1)): [$i]"doneecho "=========5============"

    IFS=:echo 'IFS=":",using "$*"'c=0for i in "$*"do echo "$((c+=1)): [$i]"doneecho "==========6============="

    echo 'IFS=":",using $*'c=0for i in $*do echo "$((c+=1)): [$i]"doneecho "=========7============="

    var=$*echo 'IFS=":",using "$var" (var=$*)'c=0for i in "$var"do echo "$((c+=1)): [$i]"doneecho "===========8=========="

    echo 'IFS=":",using $var ($var=$*)'c=0for i in $vardo echo "$((c+=1)): [$i]"doneecho "=========9============="

    var="$*"echo 'IFS=":",using $var (var="$*")'c=0for i in $vardo echo "$((c+=1)): [$i]"doneecho  "===========10==========="

    echo 'IFS=":",using "$var" (var="$*")'c=0for i in "$var"do echo "$((c+=1)): [$i]"doneecho "=========11=========="

    echo 'IFS=":",using "$@"'c=0for i in "$@"do echo "$((c+=1)): [$i]"doneecho "=========12========"

    echo 'IFS=":",using $@'c=0for i in $@do echo "$((c+=1)): [$i]"doneecho "==========13======="

    var=$@echo 'IFS=":",using $var(var=$@)'for i in $vardo echo "$((c+=1)): [$i]"doneecho "==========14======="

    echo 'IFS=":",using "$var" (var=$@)'c=0for i in "$var"do echo "$((c+=1)): [$i]"doneecho "===========15========"

    var="$@"echo 'IFS=":",using "$var" (var="$@")'c=0for i in "$var"do echo "$((c+=1)): [$i]"doneecho "==========16========"

    echo 'IFS=":",using $var (var="$@")'c=0for i in $vardo echo "$((c+=1)): [$i]"doneecho "===========17========"

    echo exit 0

     

    2.当IFS为空时,$*和$@

    #! /bin/shmecho(){ echo "$1,$2,$3"}

    IFS=""set a b cmecho "$*"mecho $*

    mecho $@mecho "$@"

    exit 0

     

    3.下划线变量

    #! /bin/shecho $_                  $_-------保存之前执行命令的最后一个参数的值du >/dev/nullecho $_

    ls -al >/dev/nullecho $_:echo $_

     

    4.在一个文本文件之间插入空行

    #! /bin/sh# Uage: $0 < filenameMINLEN=15while read linedo echo "$line" len=${#line}  -----字符串长度 if [ "$len" -lt "$MINLEN" ] then   echo fidone

    exit 0


    最新回复(0)