ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Shell 脚本基础知识

2023-07-06 12:19:30  阅读:144  来源: 互联网

标签:学习编码 Shell  开发运营


什么是内核?
Linux内核负责管理CPU、内存、输入/输出设备等系统资源。当您启动Firefox时,内核会与硬件交互,为程序分配系统资源并确保其顺利运行。

什么是壳牌?
Shell 是一个提供与 Linux 操作系统交互的用户界面的程序。它允许用户输入命令,例如:(ls列出文件),shell 解释这些命令并代表用户运行。

Linux 中的 Shell 类型

Bash (Bourne-Again SHell):这是 Linux 中最常用的 shell,也是大多数发行版的默认 shell。
Zsh (Z SHell):与 Bash 类似,但提供附加功能和自定义选项。
Ksh (Korn SHell):与 Bash 和 C shell 兼容,并提供高级脚本编写功能。
Csh (C SHell):语法类似于 C 编程语言,深受开发人员欢迎。
Tcsh (TENEX C SHell):C shell 的改进版本,具有附加功能和改进。
什么是 Linux Shell 脚本?
Shell 脚本是编写可在 Linux CLI 上运行的脚本/程序的过程。它是用 shell 语言编写的,例如 Bash,用于自动执行重复任务等等。
Shell 脚本是解释型的,而不是编译型的。 当执行脚本时,shell 会逐行读取脚本,而不是立即编译并将其转换为二进制文件。这有助于修改脚本而无需重新编译。但是,Shell 脚本的运行速度可能比编译的程序慢。
它用于执行各种DevOps 任务,例如自动化部署、管理基础设施、部署代码以及监控。
理论已经够多了,让我们来实践一下:)

让我们创建一个 shell 脚本来自动执行创建新目录并将其更改到该目录的过程。

# !/bin/bash # 创建一个新目录 mkdirscripts #切换




目录
cdscripts
使用扩展名保存文件.sh。例如“change_dir.sh”
检查脚本文件的权限。应该有执行权限chmod 777 change_dir.sh

执行脚本./change_dir.sh

什么是舍邦?
上面的代码中#!/bin/bash称为 Shebang。

Shebang 是脚本中的一个特殊字符,它告诉操作系统使用哪个解释器来执行脚本。我们将使用 Bash 解释器。
它#!从解释器的路径开始。/bin/bash是解释器可执行文件的路径。
编写一个 Shell 脚本,打印 I will Complete #90DaysOofDevOps Challenge
#!/bin/bash

echo  "我将完成 #90DaysOofDevOps 挑战"
该脚本的作用如下:

#!/bin/bash: 是一个 Shebang,指定解释器,即 BASH
echo: 用于打印消息。
运行脚本:

将代码保存到文件中my_script.sh
使其可执行:chmod +x my_script.sh
然后执行脚本./my_script.sh

Shell 脚本中的输入和输出
用户输入:
#!/bin/bash
echo  "输入你的名字?"
read name

echo  "嗨$name,感谢您阅读博客:)"
该脚本的作用如下:

read name:命令读取用户的输入并将其保存到$name变量中。
echo:命令输出一条包含用户名的消息。
运行脚本:

将代码保存到文件中user_input.sh
使其可执行:chmod +x user_input.sh
然后执行脚本./user_input.sh

命令行参数:
命令行参数是执行脚本时传递给脚本的参数。

参数作为字符串传递,并且可以使用位置参数进行访问。
$0用于存储文件名,第一个参数使用 访问,$1第二个参数使用 访问$2,依此类推。
$#用于获取参数总数。
#!/bin/bash

echo  "文件名为: $0 "
echo  "姓名: $1 "
echo  "年龄: $2 "
echo  "关注更多此类内容$1 "
echo  "参数总数为: $# "

控制结构
控制结构有助于执行代码的条件执行。

Shell 脚本中最常用的控制结构是:

If-else 语句
For循环
If-else 语句
if-else 语句允许有条件地执行代码。

If-else 语句的语法

if [条件]
then
    # 条件为真时执行的代码
else
    # 条件为假时执行的代码
fi
通过比较 3 个数字,在 Shell 脚本中使用 If else 编写程序
#!/bin/bash

# 声明a、b、c,找出其中较大的数。
a=10
b=5
c=20

echo  "让我们找出最大的数字!"
echo  "a = $a , b = $b , c = $c "

if [[ $a -gt $b && $a -gt $c ]]
then
    echo  "A = $a更大"
elif [[ $b -gt $a && $b -gt $c ]]
然后
    echo  "B = $b更大"
else
    echo  "C = $c更大"
fi
该脚本的作用如下:

if 语句检查变量是否a大于两者b,并c 使用-gt比较运算符(代表大于)。如果这个条件为真,它会打印“A = $a 更大”。
如果第一个条件为 false,则代码使用 elif 语句检查下一个条件,该语句检查变量是否b大于a 和c。如果这个条件为真,它会打印“B = $b 更大”。
如果第一个和第二个条件都为假,则代码执行 else 块并打印“C = $c isgreater”。

For 循环
For 循环允许重复执行代码特定次数

For 循环的语法:

for Variable in Values
do
    # 要执行的代码
did
编写一个使用 For 循环显示 1 到 10 个数字的程序
#!/bin/bash
echo  "For 循环打印 1 到 10 个数字!"
for i in {1..10}
do
echo  "i 的值是: $i "
完成

功能
函数是更容易阅读和执行特定任务的小代码块。

#!/bin/bash

# 定义两个数字相加的函数
add_numbers () {
    sum =$(( $1 + $2 ))
    echo  "The sum of $1 and $2 is: $sum "
 }

# 调用该函数并传递两个数字作为参数
add_numbers 10 20


 

标签:学习编码,Shell ,开发运营
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有