shell script学习笔记4

间接引用
a=letter
letter=z
echo "$a" # letter
eval a=\$$a
echo "$a" # z

在Bash 2中引入了这样的形式,echo ${!a}


$RANDOM # 每次调用会返回一个不同的随机数


set set用于在scripts内部给出其运行参数
set hello world
echo $1 # hello
echo $2 # world


通配符的使用例子

for file in * # 出现通配符*和?,那会进行文件名扩展 file globbing
do
ls -al "$file" # 就相当于列出当前目录的所有文件
done


对于利用类似如下方式进行循环的做法:
通过read可以保证每次读取一行,如果利用for循环要注意带space的文件名的问题;
改变IFS来规避此问题。
find ./ -type f -name '*' | sort | while read file
do
...
done


tmp=$IFS
IFS='#'
for file in $(find ./ -type f -name '*' | tr '\n' '#')
do
...
done
IFS=$tmp


循环控制
break 命令会跳出循环
continue 命令会跳出本次循环,继续下一次循环


case使用例子:

while [ $# -gt 0 ]
do
    case "$1" in
    "-d" | "--debug")
        DEBUG=1;;
    "-c" | "--config")
        CONFIG="$2"
        shift
    esac
    shift
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值