本文介绍: do“echo -n “$j*$i=$((i*j)) ““done:使用 seq 命令生成从 1 到当前行数的数列,内层循环遍历数列并输出对应的乘法表达式echo -n “$j*$i=$((i*j)) ““>> result.txt使用 echo 命令输出乘法表达式,并使用 >> 运算符将其追加写入文件 result.txt 中。echo “”“>> result.txt:在每一行输出结束时,使用 echo 命令打印一个空行,并将其追加写入文件 result.txt 中。

一、常用shell脚本指令

echo 输出指定文本变量值到标准输出

echo "hello"

read标准输入读取用户输入,并将其保存指定变量中。

read var

if: 执行条件语句,如果满足指定条件执行特定操作,否则执行其他操作

if [ $num -gt 10 ]
then
    echo "num is greater than 10"
else
    echo "num is less than or equal to 10"
fi

for: 循环执行特定操作,每次迭代更新变量值。

for i in {1..10}
do
    echo $i
done

while: 循环执行特定操作,直到指定条件不再满足为止。

while [ $num -lt 10 ]
do
    echo $num
    num=$((num+1))
done

case: 执行多路分支语句,根据指定条件执行不同的操作

case $var in
    "1")
        echo "var is 1"
        ;;
    "2")
        echo "var is 2"
        ;;
    *)
        echo "var is not 1 or 2"
        ;;
esac

grep 在指定文件或输入流中查找匹配指定模式的行。

grep "pattern" file.txt

sed 编辑指定文件或输入流的文本内容可以进行替换删除插入操作

sed 's/pattern/replacement/g' file.txt

awk 处理文本数据可以进行分割筛选计算操作

awk '{print $1, $2}' file.txt

二、给shell 脚本编写的一般过程

1确定脚本的目的和功能:在编写 shell 脚本之前,需要明确脚本的目的和功能。这有助于确定需要执行哪些命令脚本整体结构

2)写出脚本的基本框架:在写 shell 脚本时,需要先写出脚本的基本框架,包括指定脚本使用解释器设置环境变量等。

3编写脚本的命令:根据脚本的目的和功能编写脚本需要执行的命令。可以使用一些常用的命令,如 cdls、echo 等。

4)添加参数选项:可以在脚本中添加参数选项,使脚本更加灵活和易用。参数选项可以通过 $1、$2、$3 等变量进行引用

5)调试脚本:编写完脚本后,需要进行调试。可以使用一些调试工具,如 bashdbkshdbshdb 等。

6)测试脚本:在脚本编写完成后,需要进行测试以确保脚本的正确性和可靠性。可以使用一些测试工具,如 shunit2、bats 等。

7)完善脚本:在完成基本功能后,可以对脚本进行完善,添加一些特性和改进脚本性能

(8)文档化脚本:最后需要文档化脚本,包括脚本的使用方法参数选项等,以方便其他人使用和维护脚本。


三、编写 shell 脚本 p1.sh ,完成向用户输出Hello!”的问候语。 并根据实验的时 , 分别给出:“上午好!”或者“下午好!”或者“晚上好!”的问候。(提示:使用date 取得当前时间,并对 date 进行格式化取得当前时间中的小时, 根据当前的小时来判断上午、 下午还是晚上。 1-11 点上午, 12-18 点下午, 19-24 晚上。)

给出程序代码、解释及运行结果示。

  

#!/bin/bash:指定脚本的解释器bash

hour=$(date +”%H”):使用 date 命令获取当前的小时数,并将其赋值变量 hour。

if [ $hour -ge 1 -a $hour -lt 12 ]; then:如果当前时间在 1 点到 11 点之间,则输出上午好的问候语。

elif [ $hour -ge 12 -a $hour -lt 19 ]; then:如果当前时间在 12 点到 18 点之间,则输出下午好的问候语。

else:如果当前时间在 19 点到 24 点之间,则输出晚上好的问候语。

fi:if 结构的结束标志。

        在上述脚本中,使用 date 命令获取当前的小时数,然后根据小时数判断是上午、下午还是晚上,并输出相应的问候语。通过这种方式,可以根据当前的时间动态生成问候语,让脚本更加灵活和实用。


四、编完成 shell 脚本 p2.sh :如果存在 p1.sh 文件, 则输出信息p1.sh 文件已 存在, 并询问是否允许? 如果用户回答: 要运行, 那么给出运行结果;如回到 不要运, 则退出程序。如果 p1.sh 不存在, 则提示用户先创建文件并退出。

给出程序代码、解释及运行结果展示

#!/bin/bash:指定脚本的解释器bash

if [ -e p1.sh ]; then:判断当前目录是否存在 p1.sh 文件,如果存在,则执行下一步操作;否则输出错误信息并退出程序

echo “p1.sh 文件已经存在,是否允许运行?(y/n)”:输出提示信息,询问用户是否允许运行 p1.sh 文件。

read answer:使用 read 命令获取用户的输入,并将其赋值变量 answer。

if [ “$answer” = “y” ]; then:判断用户输入的内容是否为 y,如果是,则执行下一步操作;否则输出错误信息并退出程序

echo “运行 p1.sh 脚本:”“./p1.sh“”:输出提示信息,执行 p1.sh 脚本。

else:if 结构的分支结束标志。

echo “用户选择不允许运行 p1.sh 脚本,程序退出。”:输出提示信息,表示用户选择不允许运行 p1.sh 脚本,并退出程序

exit 0:退出程序返回状态码 0。

else:if 结构的分支结束标志。

echo “p1.sh 文件不存在,请先创建文件。”:输出错误信息,表示 p1.sh 文件不存在,请先创建文件。

exit 0:退出程序返回状态码 0。

        在上述脚本中,使用 -e 选项判断当前目录下是否存在 p1.sh 文件,如果存在则提示用户是否允许运行,如果不存在则提示用户先创建文件。如果用户允许运行 p1.sh 脚本,则执行 p1.sh 文件;如果用户不允许运行,则输出错误信息并退出程序。


五、编 shell 脚本, 按要求打印输出乘法口诀表,输出用两种方式完成: 一种是 直接控制台输出; 另一种是输出至文件 result.txt

1x1=1

1x2=2

2x2=4

1x3=3

2x3=6

3x3=9

1x4=4

2x4=8

3x4=12

4x4=16

1x5=5

2x5=10

3x5=15

4x5=20

5x5=25

1x6=6

2x6=12

3x6=18

4x6=24

5x6=30

6×6=36

1x7=7

2x7=14

3x7=21

4x7=28

5x7=35

6×7=42

7x7=49

1x8=8

2x8=16

3x8=24

4x8=32

5x8=40

6×8=48

7x8=56

8×8=64

1x9=9

2x9=18

3x9=27

4x9=36

5x9=45

6×9=54

7x9=63

8×9=72

9×9=81

给出程序代码、解释及运行结果展示

 

#!/bin/bash:指定脚本的解释器bash。

echo “控制台输出:”“for i in {1..9}; do“…“done:使用 echo 命令输出提示信息,并使用两层嵌套的循环打印乘法口诀表,其中外层循环控制行数,内层循环控制列数。

for j in $(seq 1 $i); do“echo -n “$j*$i=$((i*j)) ““done:使用 seq 命令生成从 1 到当前行数的数列,内层循环遍历数列并输出对应的乘法表达式

echo “”:在每一行输出结束时,使用 echo 命令打印一个空行。

echo “文件输出:”“> result.txt“for i in {1..9}; do“…“done:使用 echo 命令输出提示信息,并将输出结果写入到文件 result.txt 中。

echo -n “$j*$i=$((i*j)) ““>> result.txt:使用 echo 命令输出乘法表达式,并使用 >> 运算符将其追加写入到文件 result.txt 中。

echo “”“>> result.txt:在每一行输出结束时,使用 echo 命令打印一个空行,并将其追加写入到文件 result.txt 中。

        注意,上述代码中的 -n 选项表示不换行输出。在控制台输出时需要使用该选项,以避免输出结果混乱。在文件输出时则不需要使用该选项,因为文件中每一行都以换行符结尾。

六、总结

语法错误: shell 脚本中常见的语法错误包括拼写错误、缺少分号、括号匹配等。解决方式是使用代码编辑器或 IDE 来检查语法错误,并使用 shellcheck工具进行代码检查

文件权限问题: 如果在运行 shell 脚本时遇到“Permission denied”错误,可能是因为该脚本没有执行权限解决方式是使用 chmod 命令给脚本添加执行权限,例如 chmod +x script.sh。

环境变量问题: shell 脚本中使用的命令和程序需要环境变量定义,否则会提示“command not found”等错误。解决方式是在脚本中使用绝对路径添加环境变量到 PATH 变量中。

调试问题: shell 脚本的调试可以使用 echo 命令输出调试信息,或者使用 set -x 命令启用跟踪模式以便查看脚本执行的详细过程。还可以使用 shellcheck工具进行代码检查和调试。

个人感想:

        Shell 脚本是一种非常实用的工具,可以用来自动化和简化很多日常工作系统管理任务学习 Shell 脚本不仅可以提高工作效率,还可以深入了解 Linux 和 Unix 操作系统的基本原理工作方式。在编写 Shell 脚本时,需要注意语法规范和代码风格以便保证脚本的可读性和可维护性。此外,使用合适的工具技巧进行代码调试和测试也非常重要。

原文地址:https://blog.csdn.net/qq_53083744/article/details/129977618

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10657.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注