Linux Script (for 加数建立多文件)

     (1)显示多个##号脚本

#!/bin/bash     #文件的开头解释语言
aa=#      #把这两个进行赋值
bb=#
for i in `seq 1 39`    #for循环,从1到39,每次递增1
do
  for b in `seq 1 $i`    #接下来嵌套for循环,从1到上面for循环的i值
  do
    echo -en "$aa"    #显示39个#符号。(-en这是转义字符)
 sleep 0.1    #暂停0.1秒的时间
    echo -en "$bb"    #接下来又显示#符号
 if [ $b -eq $i ]   #判断循环的b值是否等于循环的i值,如果相等就执行下面的语句
 then
   echo     #显示空的信息
 fi     #if语句判断结束
done
  done      #for语句结束
 
======================================================================
(2)瞬间创建10个txt文档,里面的内容都是tsinghua-6
#!/bin/bash    #shell脚本的开头执行语句
for((a=1;a<=10;a++))   #for循环,从1到10,每次递增1
  do
  echo tsinghua-6 >>a$a.txt  #现实tsinghua-6这个词,并追加到a$a.txt中去,$a代表着10个。
  
 done     #最后语句结束。
 
====================================================================
(3).这是一个shell脚本算出从1到10的平方
#这个脚本有多个写法;
第一种写法;
#!/bin/bash     #脚本解释程序
for i in `seq 1 10`    #for循环,从1开始,每次递增1,知道10结束
  do
  echo "$i----->$(($i*$i))"   #把每次循环的值相乘,来达到算出1~10的平法的结果
 done      #语句结束

第二种写法:
#!/bin/bash     
for i in `seq 1 10`
do
 
    ((sum=$i*$i))    #sum等于两个$i值相乘的结果
echo "$i----->$sum"    #最后打印循环$i值对应的平方的结果值
 done      #语句结束

第三种写法:
#!/bin/bash
for((i=1;i<=10;i++))    #从1开始,每次递增1,一直到10
 do
 echo "$i----->$(($i*$i))"   #算出$i值对应的平方值
  done      #for语句结束
#刚刚上面三种写法都是用for语言来写,接下来第四种写法我们用while语句来写;
 
第四种方法:
#!/bin/bash
i=1      #把i赋值为1
while [ $i -le 10 ]    #开始while语句,从1开始,直到小于或等于10就停止。
 do
   echo "$i---->$(($i*$i))"   #把$i的值相乘,得出循环$i值的平方
 ((i=$i+1))    #每次把$i值循环一次都加1,一直加到
 
 done      #语句的结束
 
====================================================================
(4).求100之内的数相加的和是多少
#第一种写法,通过for循环
#!/bin/bash   #开头执行语句,脚本解释
for((i=1;i<=100;i++))  #for循环,从1到100
  do
   ((sum+=$i))   #$i每循环一次的值赋予给sum,并与sum相加一次,一直加到100为止
  done    # for语句循环的结束
  echo "1+2+3+4...=$sum" #最后显示相加后的结果

#第二种写法,通过while语句来计算
#!/bin/bash     #shell开头执行解释器
i=1      #把i赋值为1
while [ $i -le 100 ]    #开始while循环,从1开始,小于等于100
  do    
   ((sum+=$i))     #把每次$i的值都赋予给sum并和sum相加一次
    ((i=$i+1))     #$i每循环一次都加1,表示每循环一次都递增1
   done      #while语句循环结束
 
  echo "1+2+3+4+5...=$sum"   #最后打印100自身相加的和
 
====================================================================
(5).这是判断一个分数是否过60分的SHELL脚本
#!bin/bash    #shell脚本的解释程序
echo -n "Please input Number:"  #在屏幕上现实一行请输入数字
read number    #从键盘上读取数字
if [ $number -ge 60 ]   #判断你输入的数字是否大于等于60
    then
    echo "Pass"    #如果是,就显示Pass
    
      else
      echo "No"    #如果不是,就显示No
fi 
 
=====================================================================
(6).9x9乘法表
#!/bin/bash    #开头语句,代表是用SHELL语言执行
for ((a=1;a<=9;a++))   #for循环,从1递增到9
  do
  for ((i=1;i<=a;i++))   #开始下一个for循环,从1递增到到上一个9 
    do
   ((sum=$a*$i))   #求2个for循环1到9的相乘结果
 echo -en "$i*$a=$sum/t"  #显示一个相乘的公式,最后得出结果
        if [ $i -eq $a ]  #判断语句,如果下面的FOR循环的i值等于上面FOR循环的A值的时候,就执行
        then  
        echo -e "/n"   #强制换行
 fi    #if语句结束
  done
     done    #for语句结束
 
 
 
//写了这么多Shell 脚本,最主要是讲解一下shell脚本的编程的思想,上面的介绍的都是最基本的,如果有朋友都shell脚本也感兴趣可以一起交流。QQ:254535905
### 创建带时间戳的备份文件脚本Linux 系统中,可以通过组合 `cp`、`date` 和其他命令来创建具有时间戳的备份文件。以下是一些详细的示例和说明。 #### 示例一:基础备份脚本 这是一个简单的 Shell 脚本,用于将源文件复制到目标位置,并自动附加当前日期和时间作为时间戳。 ```bash #!/bin/bash # 获取当前时间和日期的时间戳 timestamp=$(date +"%Y%m%d_%H%M%S") # 定义原始文件路径和备份文件名模板 original_file="/path/to/original_file.txt" backup_file="/path/to/backup_file_${timestamp}.txt" # 执行复制操作 cp "${original_file}" "${backup_file}" # 输出确认消息 echo "Backup created successfully: ${backup_file}" ``` 此脚本的核心部分在于使用 `date` 命令生成时间戳[^1],并将该时间戳嵌入到新文件名中。 --- #### 示例二:增强版备份脚本(支持多个文件) 如果需要批量处理多个文件,则可以扩展上述脚本以适应更多需求。 ```bash #!/bin/bash # 设置要备份的目标目录以及输出日志文件 source_dir="/path/to/source_directory/" destination_dir="/path/to/destination_backup/" # 获取当前时间戳 timestamp=$(date +"%Y%m%d_%H%M%S") # 遍历 source_dir 中的所有文件并逐一进行备份 for file in "$source_dir"*; do if [[ -f "$file" ]]; then filename=$(basename "$file") cp "$file" "${destination_dir}${filename}_${timestamp}" fi done # 将本次操作记录写入日志 echo "$(date): Backup completed with timestamp $timestamp." >> /var/log/backup.log ``` 在此版本中引入了一个循环结构 (`for`) 来迭代指定目录内的所有项目,并针对每个找到的有效文件单独建立副本[^4]。 --- #### 示例三:结合 rsync 实现增量备份 对于更复杂的场景比如跨设备同步或者只传输更改过的部分而非整个文档来说,“rsync”可能是更好的选择因为它具备高效的数据比较能力从而减少不必要的网络流量消耗。 ```bash #!/bin/bash src_folder="/data/source/" dest_folder="/backup/${HOSTNAME}_$(date +%F)/" mkdir -p "$dest_folder" rsync -av --delete "$src_folder" "$dest_folder" logger -t backup_script "Finished backing up to $dest_folder." ``` 这里我们不仅实现了基本的功能还加入了删除多余项(`--delete`)参数确保目的端始终反映最新状态同时保留历史版本以便恢复之用[^3]. --- ### 关于文件时间属性的影响 值得注意的是,在执行任何类型的文件移动或拷贝动作之前应该考虑到不同种类的时间标记(atime,mtime,ctime),因为它们可能会因我们的活动而受到影响进而干扰依赖这些元数据的应用程序正常运作[^2]. 例如当单纯读取某个大容量数据库索引表时虽然不会直接影响其内容本身但却有可能触发相应磁盘分区上的访问计数器增加最终累积成显著开销所以现代许多高性能存储解决方案都提供了诸如noatime之类的挂载选项用来规避此类潜在风险. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值