Shell脚本编程小实验

Shell脚本编程小实验

复制/etc/目录下的所有东西备份到/app/目录下


展示:---------------------------------------------------

#!/bin/bash

#-----------------------------------------------------

#Author:                gaoqian

#QQ:                    350080546

#Date:                  2018-05-27

#FileName:              backup.sh

#-----------------------------------------------------

echo"startbackup......"

sleep5

echo-e "\e[1;31mstart backup......\e[0m"

sleep5

cp -av /etc/ /app/etc`date +%F+%T`

echo "\e[1;31mbackpuis finished\e[0m"

--------------------------------------------------------------

1.第一步:

查看环境变量。

输入:echo$PATH

显示结果:

#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


2.第二步:

进入家目录下/bin目录

目的是查看是否存在该目录,准备将脚本放在该目录下。

#cd/root/bin

#-bash:cd: /root/bin: No such file or directory

发现报错,找不到路径。

 

3.第三步:

准备新建目录

输入:Mkdir/root/bin

输入:cd /root/bin 回车

[root@localhost bin]# 

进入该目录,成功。

 

4.第四步:

新建vim shell   ”backup.sh“”文件到该目录下

在/bin目录下 输入:vim backup.sh 回车,开始写入文件。

1.进入vim编辑器的命令模式:

                                按小写字母i 进入编辑模式:开始写入

#!/bin/bash

#-----------------------------------------------------

#Author:                gaoqian

#QQ:                    350080546

#Date:                  2018-05-27

#FileName:              backup.sh

#-----------------------------------------------------

echo-e "\e[1;31mstart backup......\e[0m"

sleep5

cp-av /etc/ /app/etc`date +%F+%T`

echo"\e[1;31mbackpuis finished\e[0m"

编辑完成后,按exc退出编辑模式,进入命令模式。

按shift+:进入扩展命令模式。

按小写wq保存并退出。

 

6.给文件加上可执行权限。(保险起见)

#chmod+x backup.sh

 

7.执行程序

在任何目录下都可以执行程序(因为程序放在PATH目录下 系统可以直接搜索到。)

 

<think>嗯,用户想学习Shell脚本编程的实验教程和示例代码。首先,我需要确定用户的基础水平。他们可能已经了解一些基本概念,但需要实际操作的例子来巩固知识。根据用户提供的引用内容,特别是引用[1]、[2]和[3],我需要结合这些资料来构建实验内容。 首先,用户提到的引用[1]中有变量赋值的例子,展示了不同引号的用法。这可能是一个好的起点,第一个实验可以围绕变量和字符串展开,让用户练习不同的引号对变量的影响,比如单引号、双引号和无引号的区别。 接下来,引用[2]讨论了Shell脚本的执行方式。用户可能需要了解如何正确运行脚本,包括权限管理和不同的执行方法(如bash、sh、source等)。第二个实验可以设计为脚本执行与权限管理,让用户动手修改权限并尝试不同的执行方式,比如使用绝对路径或相对路径执行,以及使用source命令的区别。 然后,引用[3]提到了循环结构,包括for、while和until。第三个实验可以围绕流程控制,设计条件判断和循环的例子。例如,使用if语句判断文件类型,或者用for循环遍历目录中的文件。这部分需要确保用户理解循环的进入和退出条件,以及如何编写有效的条件表达式。 用户还可能希望有综合应用实验,将之前的知识点结合起来。比如,编写一个备份脚本,结合变量、循环和条件判断,自动备份指定目录的文件到另一个位置,并记录日志。这样的实验能帮助用户将分散的知识点整合,解决实际问题。 另外,需要注意示例代码的正确性和易读性。每个实验的代码需要符合Shell语法规范,并且添加注释解释关键步骤。同时,要提醒用户注意常见错误,比如权限问题、变量作用域和引号的使用,这些在引用内容中都有涉及。 最后,用户可能需要相关的问题来进一步巩固知识,比如变量替换、调试技巧或参数传递。这些问题可以作为思考题,帮助用户深入理解Shell脚本的各个方面。 总结来说,我需要按照从基础到进阶的顺序设计四个实验,每个实验都包含示例代码和操作步骤,并结合用户提供的引用内容,确保信息准确且实用。同时,提供相关问题引导用户进一步学习,帮助他们全面掌握Shell脚本编程。</think>### Shell脚本编程实验教程与示例代码 --- #### 实验1:变量与字符串操作 **目标**:掌握Shell变量的定义、引用及字符串拼接方法。 **示例代码**: ```bash #!/bin/bash # 定义变量 n=100 str1=Hello$n # 无引号,直接拼接变量 str2="Hello \"Shell\" $n" # 双引号允许变量替换和转义符 str3='Hello $n' # 单引号禁止变量替换 echo "str1: $str1" echo "str2: $str2" echo "str3: $str3" ``` **运行结果**: ``` str1: Hello100 str2: Hello "Shell" 100 str3: Hello $n ``` **关键点**: - 双引号支持变量替换和转义符(如`\"`),单引号保留所有字符字面值[^1]。 --- #### 实验2:脚本执行与权限管理 **目标**:理解脚本执行权限与不同执行方式的区别。 **操作步骤**: 1. 创建脚本`test.sh`并添加可执行权限: ```bash chmod +x test.sh # 赋予执行权限 ./test.sh # 相对路径执行 ``` 2. 无执行权限时通过解释器执行: ```bash bash test.sh # 无需x权限 source test.sh # 在当前Shell环境执行(影响全局变量)[^2] ``` --- #### 实验3:流程控制(条件与循环) **目标**:掌握`if`条件判断和`for`循环的使用。 **示例代码**: ```bash #!/bin/bash # 判断文件类型 file="example.txt" if [ -f "$file" ]; then echo "$file 是普通文件" else echo "$file 不存在或不是普通文件" fi # 遍历目录中的文件 for item in /path/to/dir/*; do echo "找到文件: $item" done ``` **关键点**: - 使用`[ ]`或`[[ ]]`进行条件测试,注意空格分隔[^3]。 --- #### 实验4:综合应用(备份脚本) **目标**:编写自动备份指定目录的脚本。 **示例代码**: ```bash #!/bin/bash backup_dir="/backup" source_dir="/data" timestamp=$(date +"%Y%m%d_%H%M%S") mkdir -p $backup_dir tar -czf "$backup_dir/backup_$timestamp.tar.gz" "$source_dir" echo "备份完成:$backup_dir/backup_$timestamp.tar.gz" >> /var/log/backup.log ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值