【Shell】变量嵌套(eval)的使用

问题

在解决下列问题时,需要遍历第二个开始的位置参数,一个$需要取i的值,还需要一个$取位置参数的值,这样就形成一个嵌套,这时就需要使用eval

读取若干输入,把第二个位置参数及其以后的各个参数指定的普通文件复制到第一个位置参数指定的目录中,其中

  1. 若第一个参数指定的目录不存在,则创建它;若存在且为普通文件,则删除该文件,并创建为目录;若存在且为目录,则清空这个目录
  2. 第二个参数及其以后的参数,若为普通文件则复制到第一个参数指定的目录,否则忽略
#!/bin/bash

if [[ ! -e $1 ]]; then
    mkdir -p $1
elif [[ -f $1 ]]; then
    rm $1 -f
    mkdir -p $1
elif [[ -d $1 ]]; then
    rm $1/* -rf
fi

for ((i=2; i<=${#}; ++i)); do
    eval para='$'$i
    if [[ -f $para ]]; then
        cp $para $1
    fi
done

这里是引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值