shell编程中的 if 和循环语句

if语句

if then fi
if condition
then
    command1 
    command2
    ...
    commandN 
fi
if then else fi
if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi
#也可以增加elif
if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

循环

类似于其他语言中的循环,可以用continue和break跳出循环。

for
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done
while
while condition
do
    command
done

#如果没有条件,就是无限循环。
while :
do
    command
done
case
case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac
until

until 循环执行一系列命令直至条件为 true 时停止。

until condition
do
    command
done

例子

假设要从好几万个文件中挑选出几千个你想要的文件,这些文件存放在不同的文件夹下。现在给你这些文件的路径(存放在file_name.txt中),请下载找到这些文件并复制到指定的文件夹下。

for line in $(cat  /所在的路径/file_name.txt)#每一行代表一个文件的路径和名称。
do
    if test -e $line#判断该文件是否存在。另外,如果文件名末尾含有换行符\r,可以把$line改成${line:0:-2},如果低版本的bash不支持负数表达式,可以用其他方式截取字符串,如${line%\\*}
    then 
        cp $line /file_dir/
    else 
        echo "$line not exist"#shell中,双引号中的变量名被当作变量处理,而单引号中的变量名只是字符串。
    fi
done
#写成一行
for line in $(cat  /所在的路径/file_name.txt);do if test -e $line;then cp $line /file_dir/;else echo "$line not exist"; fi; done

参考文章

菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值