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