首页 > 系统相关 >Shell脚本和变量

Shell脚本和变量

时间:2024-06-11 23:03:47浏览次数:25  
标签:脚本 输出 shell 变量 sh Shell test

文章目录

Shell脚本

脚本就是可运行的代码的集合,脚本语言(计算机语言)脚本的特点:从上到下,按时执行。

python 脚本语言 格式更严谨 严格的执行缩进,也是从上倒下按行执行

shell脚本就是在shell环境(/bin/bash)bsah就是shell解释器,linux环境下的编程语句。

自动化运维,可重复执行的,自动化的在系统中实现曾删该查的操作。

shell的解释器

默认就是bash

sh:已经淘汰了

bash:sh的扩展版

csh:类c语言

tcsh:整合了c语言的shell

nolong:用户无法登录到系统的shell。

Shell的作用

1、自动运维

2、批量化的重复操作以及配合定时任务执行

3、有了脚本就可以减轻管理员的工作量

4、避免配置出错。

5、提供批量处理文件的速度

Shell脚本的构成

第一行:声明解释器

注释:以#开头 就是注释信息

在这里插入图片描述

Shell的执行方式

不给脚本执行权限的执行方式:

sh:就是在当前的shell里生成 一个子shell,运行结果不改变父shell的环境

bash:就是在当前的shell里生成 一个子shell,运行结果不改变父shell的环境

source:点命令,会改变当前shell的环境,也就是真正的执行代码

sh bash 用于调试脚本

第二种:

脚本调试完毕都是赋权执行。

重定向操作

标准输入:标准输入通常表示程序在接受数据的来源。当程序需要从用户或另一个程序获取输入时,他会从标准输入读取数据。在大多数情况下,标准输入是通过键盘输入的。

标准输出:标准输出是程序通常向其发送信息的位置,当程序产生输出时,它将输出写入到标准输出中。这些输出通常被显示在终端上

标准错误输出:标准错误输出用于程序报告错误和警告信息。与标准输出类似,标准错误输出通常也会显示在终端

重定向输出: > >> (标准输出)

> 标准输出的结果保存到指定的文件,而且会覆盖文件原有内容> 标准输出的结果存到文件,原有内容的尾部追加内容,不会覆盖原有的内容

2> 2>> 标准错误输出的结果,保存到指定文件。

&> &>> 混合输出,既可以保存标准输出,也可以保存标准的错误输出

:< c 从指定的文件获取数据

在这里插入图片描述

变量

变量的作用和类型,如何声明变量

变量的作用:用来存放系统和用户需要使用的设定的参数(值),变量保存在内存中。调用的时候

变量的类型:

自定义变量 名称由用户自定义 值也可以自定义

变量名的规范

1、不要使用系统的命令作为变量名

2、不要使用中文

3、不要使用特殊符号开头,可以使用下划线开头,不要使用数字开头

4、变量名我们一般会使用对应的英文名称来使用,

5、变量名要保持前后一致,要有注释。提高代码的可读性

变量值的规范

int 整数 string 字符串 浮点0.12 布尔: true false

声明是字符串,需要用引号引起来

双引号 单引号 反撇号的作用和区别

双引号 弱引用


# vim test.sh 文本编辑
a="test"
echo "$a"
查看变量的值有没有
sh test.sh 
test  可以看到没有变化

单引号

# vim test.sh   文本编辑
a='test'
echo '$a'
查看变化
# sh test.sh 
$a

反撇号

# vim test.sh 
a=`ls /opt`
echo "$a"
查看内容
# ls
passwd.txt  test2.txt  test.sh
# sh test.sh 
passwd.txt
test2.txt
test.sh

双引号就是弱引用,变量值就是变量值本身

单引号就是强引用,变量值不再是本身定义的值,保持自身的字符的字符串形式

反撇号哦,命令替换,把命令的执行结果传给变量,作为变量的值,先执行命令,再给变量赋值

如何自定义输入变量的值

read -p “提示信息必须要有:” a

-p 指定提示符,提示符的内容包含在“ ”中间,“ ”可以为空,但是双引号必须要有(整数运算)

文本格式
read -p "提示信息:" a
read -p "数字b:" b
c=$(($a+$b))
echo $c
 结果
 # vim test.sh 
# sh test.sh 
提示信息:12
数字b:15
27

全局变量:对整个系统生效,所有用户都可以使用

全局生效,每个脚本的变量值,固定的 可进入到 /etc/profile 全局配置中添加 export添加 然后刷新服务
在这里插入图片描述

# source /etc/profile
# sh test.sh 
4  

持久性

共享性

全局变量适用于不需要经常更改的值,

排错方法:bash· -x+脚本名:检查语法错误

环境变量:环境变量是系统创建的,用来设置的用户的工作环境变量

环境变量可以理解为特殊的全局变量

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
可执行的命令,或者可执行的程序的默认路径
添加
PSTH=“$PATH:/root”

位置变量:有叫做命令行参数,是在脚本的外面给脚本内部传值。

$1 $2 $3$4…$9

从第一个到弟九个

10以后要用{}把数字扩起来

# vim test.sh 
a=$1
b=$2
c=$(($a+$b))
echo $c
# sh test.sh 4 8
12

预定义变量:编程语言和解释器提供的,用户无法更改,只能由系统自行更新和设备。

∗ 和 *和 ∗和@:表示 命令或者脚本需要处理的参数,二者的区别在于处理方式的不同

在这里插入图片描述
$*和¥@ :不加引号的表现一致,都是把参数一个一个的处理

# sh test.sh 
1
2
3

$*:加了引号,会把参数当成一个整体来进行处理

# sh test.sh 
1 2 3

$# :也是全局变量,统计传递给脚本或者函数的参数个数

在这里插入图片描述
在这里插入图片描述

$? true false 命令执行之后返回的状态码

只有0,表示成功

# sh test.sh 
1
2
3
传了几个:3
# echo $?
0

所有非0的都表示失败

在文案中删除一行测试报错

在这里插入图片描述

返回最近一次执行命令的状态码

整数运算 + - × / %

a=20
b=6
c=$(($a+$b))
d=$[$a-$b]
e=$(expr $a \* $b)
let f=$a/$b
g=$(($a%$b))
echo $c $d $e $f $g
# sh test.sh 
26 14 120 3 2

小数运算

bc是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数
在这里插入图片描述

# sh test.sh 
输入第一个数11
输入第二个数11
22
# sh test.sh 
输入第一个数20.39
输入第二个数30.35 
50.74
 awk 'BEGIN {print 2.4*5.2}'  命令行模式
12.48

i++:先赋值,再加1 先用后加

++i:先加在赋值 先加后用

i-- 先用后减

–i 先减后用

小数运算

bc是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数

[外链图片转存中…(img-EPT3ukpQ-1718100979819)]

# sh test.sh 
输入第一个数11
输入第二个数11
22
# sh test.sh 
输入第一个数20.39
输入第二个数30.35 
50.74
 awk 'BEGIN {print 2.4*5.2}'  命令行模式
12.48

i++:先赋值,再加1 先用后加

++i:先加在赋值 先加后用

i-- 先用后减

–i 先减后用

标签:脚本,输出,shell,变量,sh,Shell,test
From: https://blog.csdn.net/mfq0622/article/details/139605785

相关文章

  • 破解快手引流奥秘!最新全自动脚本,解放双手轻松搞定
    在快手的世界里,流量就是一切。想要快速吸粉、引流?你需要的不仅仅是好的内容,更需要一款好用到哭的引流神器!今天,给大家揭秘最新块手多功能全自动快手引流脚本,让你解放双手,轻松搞定各种引流操作。全自动养号,轻松运营:这款脚本具备快手养号功能,帮助你在短时间内养出高权重账号......
  • Unity-脚本初识
    1、面板2、游戏对象GameObject2.1、组件Component2.2、材质Material3、摄像机3.1、天空盒SkyBox4、图形处理4.1、渲染管线4.1、遮挡剔除4.2、LOD5、光照系统6、声音7、Unity脚本7.1、脚本开发工具7......
  • Xshell免费版下载及安装
    我们平时在日常开发和学习中离不开x-shell这类的软件,后台有很多粉丝和我反馈出一期x-shell软件的下载和安装。复制下面的网站https://www.xshell.com/zh/free-for-home-school/这里选择所选的软件就可以下载了,都是免费的下面介绍X-shell安装步骤1.找到下载好的安装包......
  • Go变量作用域精讲及代码实战
    关注作者,复旦AI博士,分享AI领域与云服务领域全维度开发技术。拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕博,复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责......
  • 自动化执行任务的脚本代码分享!
    在当今信息化社会,自动化执行任务的脚本代码已经成为提高工作效率、减少人工错误的重要工具。无论是数据处理、文件操作,还是网络请求、系统监控,脚本代码都能帮助我们实现自动化操作,从而释放人力,让我们有更多时间专注于创新和思考。一、批量重命名文件的Python脚本在文件管理......
  • 在Powershell或CMD中使用conda命令
    近日在配置环境时希望能在Terminal中直接使用conda命令而不是使用AndacondaPrompt.步骤控制面板-搜索“环境变量”-环境变量(或者直接在系统中搜索“环境变量”)点击“环境变量”的按钮,在弹出的窗口中找到系统变量-Path-编辑新增,填写你的conda的Script文件夹路径,保存注......
  • shell和bash脚本命令学习
    Shell指的是任何提供命令行界面的程序,它提供了用户与操作系统之间的交互界面。它允许用户输入命令并执行它们,同时提供脚本编写功能,使得自动化任务成为可能。Shell有多种类型,比如BourneShell(sh)、CShell(csh)、KornShell(ksh)等。Bash是Shell的一种,全称为BourneAgainShell,是Bourne......
  • nushell配置及使用体会
    大部分人使用windows下cmd和pwsh的shell命令行可能会感觉不方便。cmd的使用非常的简单,确实适合一些日常使用,但是因为没有命令行补全以及历史记录,同时快捷键也有些许不足,所以用的不多。pwsh作为微软主推的shell工具,确实是丰富和强大的,但是命令很长不易于记忆,对于经常使用linux的人......
  • JavaScript基础用法(变量定义、输入输出、转义符、注释和编码规范)
    天行健,君子以自强不息;地势坤,君子以厚德载物。每个人都有惰性,但不断学习是好好生活的根本,共勉!文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。文章目录JavaScript基础用法1.变量1.1语法1.2示例代码1.3浏览器效果2.输入和输出2.1输出2.1.1输......
  • 面试专区|【40道Bash Shell高频题整理(附答案背诵版)】
    1.简述如何调试Shell脚本?调试Shell脚本是一个帮助开发者识别和修正脚本中错误的过程。Bash提供了多种方式来调试脚本,其中包括:使用-x选项:通过在运行脚本时使用-x选项,Bash会在执行每一行命令之前打印该命令。这有助于查看脚本的执行流程和变量的值变化。例如,如......