博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20170208--shell-for-while循环+小脚本文件的备份
阅读量:5734 次
发布时间:2019-06-18

本文共 2121 字,大约阅读时间需要 7 分钟。

hot3.png

for---while

for 循环
seq 序列
 

[root@up12 for-linux]# seq 512345[root@up12 for-linux]# seq 1 2 1013579[root@up12 for-linux]# echo {1..5}1 2 3 4 5[root@up12 for-linux]# echo {1..10..2}1 3 5 7 9[root@up12 for-linux]# echo {2..10..2}2 4 6 8 10
for i in 1..5; do      echo "ok"donefor i in ‘seq 10’ ; do       echo “ok”done

for的一种用法:

sum=0for i in {1..200} ; do       sum=$sum+$1done             echo $sum |bc                 //bc是shell里面自带的计算器

for的第二种用法

[root@up12 for-linux]# for ((i=0 ;i<10 ;i++));do echo $i;  done0123456789

shell中的运算方法 ,其中 (()) 的运算速度是最快的

[root@up12 for-linux]# echo $[1+1]2[root@up12 for-linux]# echo $((1+1))2[root@up12 for-linux]# let a=1+1[root@up12 for-linux]# echo $a2[root@up12 for-linux]# expr 1+11+1[root@up12 for-linux]# expr 1 + 12[kate@up12 ~]$ declare -i b=2+3  //声明变量[kate@up12 ~]$ echo $b5[root@up12 for-linux]# bc bc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'. 1+12whilewhile cmd1;docmd2donei=0while [ “$i” -lt 10 ] ;do       echo $i         i=$((i+1))        let i++        done

输出重定向,两句话的效果一模一样
>/dev/null 2>&1
&>/dev/null
<< here 文档
<<< here 字符串
basename /.../
dirname /.../

[kate@up12 ~]$ basename /opt/for-linux/for-linux[kate@up12 ~]$ dirname /opt/for-linux//opt

tee 会输出到屏幕,也会输入到文件
echo uplooking| passwd --stdin root //root 用户下,非交互的修改密码
=~只能在[[ ]]里面用,后面一定跟正则表达式
 

[kate@up12 ~]$ cut -d":" -f7 /etc/passwd |sort | uniq -c |sort -n |tail -1 | tr " "|cut -d " " -f6  //37[kate@up12 ~]$ cut -d":" -f7 /etc/passwd |sort | uniq -c |sort -n |tail -1 | tr -s  " " | cut -d " " -f237

文件的备份

#!/bin/bashsrcfile=/etc/hostsdstdir=/tmp/backupif [ ! -e "$srcfile" ];then        echo "需要备份的文件不存在"        exit 1fiif [ ! -d "$dstdir" ];then        mkdir -p $dstdir        if [ $? != 0 ];then        echo "备份目录创建失败"        exit 2        fifi#cp -a $srcfile $dstdir/$(basename $srcfile)-$(date +"%Y%m%d")cp -a $srcfile $dstdir/`basename $srcfile`-`date +"%Y%m%d"`  //这里的引号为反引号if [ $? = 0 ];then        echo "备份成功"else        echo "备份失败"fi

 

转载于:https://my.oschina.net/liubaizi/blog/835694

你可能感兴趣的文章
java.lang.NumberFormatException: For input string: &quot;undefined&quot;
查看>>
jQuery查找节点
查看>>
windows下 安装Kali Linux到 U盘的方法
查看>>
(转载)ios的一些知识点
查看>>
【译】Activitys, Threads和 内存泄露
查看>>
NET快速信息化系统开发框架 V3.2->Web版本新增“文件管理中心”集上传、下载、文件共享等一身,非常实用的功能...
查看>>
桶排序——PowerShell版
查看>>
【Android】用HandlerThread模拟AsyncTask功能(ThreadTask)
查看>>
52.8. UNION
查看>>
Educational Codeforces Round 21(A.暴力,B.前缀和,C.贪心)
查看>>
Mina2.0框架源码剖析(七)
查看>>
MIME类型
查看>>
第 3 章 Berkeley UNIX C shell (csh)
查看>>
LIST<T>现在也支持序列化和反序列化了
查看>>
【转】Android世界的Swift - Kotlin语言
查看>>
基于Spring Boot的Logback日志轮转配置
查看>>
3.2. Access Privilege System
查看>>
基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持...
查看>>
Web项目中创建简单的错误处理页面
查看>>
Android 监听 WiFi 开关状态
查看>>