Linux(四)

Linux(四)

  • shell脚本
  • shell脚本开发过程
    • 创建
      • 创建.sh文件
      • 编写.sh文件
      • 添加执行的权限 chmod 777 1.sh
      • 运行
    • shell中注释
    • shell中变量
      • 用户自定义变量 (尽量大写)
      • 位置参数即命令行参数
      • 预定义变量
      • 环境变量
  • shell中程序和语句
    • 说明性语句
    • 功能性语句
      • echo 输出
      • read 键盘读入变量值
      • expr 算术运算命令 (主要用于整数运算)
      • test命令
        • 字符串
        • 整数
        • 文件属性
    • 结构性语句
      • 顺序 echo read
      • 选择
      • 循环
  • shell中函数
    • 函数的定义
    • 函数的调用
      • 交叉编译工具步骤写成脚本

shell脚本

shell脚本(解释性语言):一堆shell命令的集合
在这里插入图片描述

shell脚本开发过程

创建

创建.sh文件

linux@ubuntu:~/24031/LinuxC/day4$ touch 1.sh

编写.sh文件

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

添加执行的权限 chmod 777 1.sh

linux@ubuntu:~/24031/LinuxC/day4$ ls -l
total 4
-rw-r--r-- 1 linux linux 5 49 22:37 1.sh
linux@ubuntu:~/24031/LinuxC/day4$ chmod 777 1.sh #修改.sh文件的权限
linux@ubuntu:~/24031/LinuxC/day4$ ls -l
total 4
-rwxrwxrwx 1 linux linux 5 49 22:37 1.sh

运行

linux@ubuntu:~/24031/LinuxC/day4$ ./1.sh
2024年 04月 09日 星期二 22:40:17 PDT

shell中注释

# shell中的脚本

在这里插入图片描述

shell中变量

用户自定义变量 (尽量大写)

变量名的命名规范:
<1>.由数字,字母,下划线组成,首字母不能为数字
<2>.不能为关键字或保留字
<3>.尽量见名知意

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

位置参数即命令行参数

由系统提供的参数称为叫位置参数

在这里插入图片描述

预定义变量

预定义变量是在shell一开始时就定义了的变量

$# 包含命令行参数的个数
$@ 包含所有命令行参数:“$1…$9”
$* 包含所有命令行参数:“$1…$9”
$$ 包含正在执行进程的ID号
$? 包含上一个命令的退出状态,正常退出返回0,反之为非0值

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

环境变量

环境变量 用于所有的用户进程

在这里插入图片描述

shell中程序和语句

说明性语句

#!/bin/bash 告诉计算机使用哪个办法去解析我们的代码

功能性语句

echo 输出

在这里插入图片描述

read 键盘读入变量值

在这里插入图片描述

expr 算术运算命令 (主要用于整数运算)

在这里插入图片描述

test命令

test语句可测试3种对象

字符串

s1 = s2 测试两个字符串是否完全一样
s1 != s2 测试两个字符串是否有差异
-z s1 测试s1字符串的长度是否为0
-n s1 测试s1字符串的长度是否不为0

在这里插入图片描述

整数

a - eq b (equal)
a -ne b
a -gt b (great)
a -ge b
a -lt b (little)
a -le b

在这里插入图片描述

文件属性

-d name 测试name是否为一个目录
-f name 测试name是否为一个文件
-L name 测试name是否为符号链接
-r name 测试name文件是否存在且为可读
-w name 测试name文件是否存在且为可写
-x name 测试name文件是否存在且可执行

在这里插入图片描述

结构性语句

顺序 echo read

选择

单分支

if [条件满足]
then
	语句
fi

双分支

if [条件满足]
then
	语句1
else
	语句2
fi

多分支

if [条件1满足]
then 语句1
elif [条件2满足]
then 语句2
elif [条件3满足]
then 语句3
.......
else
	语句n
fi
case 字符串变量 in
	模式1)
		命令表1
		;;
	模式2)
		命令表2
		;;
	模式3)
		命令表3
		;;
	.......
	*)
		命令表n+1
		;;
esac

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

1.请输入一个文件,判断它是否是普通文件
如果是普通文件,判断它是否有写的权限,
如果有写的权限,向文件中写入"hello world"
如果文件没有写的权限,给它添加写权限后,写入 “hello world”
在这里插入图片描述

循环

for循环

#带列表的for循环
for 变量名 in 列表
do
	命令表
done

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
while循环

#while语法
while [条件为真]
do
	命令表
done

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

shell中函数

函数的定义

方式一

函数名()
{
	函数体
}

方式二

function 函数名()
{
	函数体
}
#编写两个数求和的函数
function add()
{
	#$1表示第一个参数 $2表示第二个参数
	RES=`expr $1 + $2`
	echo "$1 + $2 = $RES"
	return $RES
}

函数的调用

方式一

变量名=`函数名 参数列表`
函数的所有标准输出都传递给了主程序的变量

在这里插入图片描述
方式二

函数名 参数列表
echo $? #上一个命令的退出状态

在这里插入图片描述

交叉编译工具步骤写成脚本

1、将交叉编译工具链压缩包拖到虚拟机的某个目录下
2、打开终端,进入该目录
3、解压
sudo tar -xzvf gcc-4.6.4.tar.gz(名字根据实际文件名替换)
注意:解压时,压缩包的名字可以使用tab键自动补全
4、
进入到该目录,直到进入bin目录
5、使用pwd命令,得到该目录的绝对路径,并将该目录的绝对路径拷贝下来
6、sudo vim /etc/profile
7、在该文件的末尾加上
export PATH=$PATH:/home/linux/gcc-4.6.4/bin
注意:“$PATH:"后的路径为你刚才拷贝的绝对路径
8、添加完成后,保存退出
9、重启虚拟机
10、打开终端,输入arm-liunx-gcc 然后tab键,如果能够自动补全,则说明交叉编译工具链已安装成功
#jiaocha.sh 运行该shell脚本,直接安装叫交叉编译工具
sudo ./jiaocha.sh
#!/bin/bash
cd $HOME #进入用户主目录
sudo tar -xzvf gcc-4.6.4.tar.gz #解压到当前目录
cd gcc-4.6.4/bin
myPATH=`pwd`
echo "myPATH=$myPATH"
echo "export PATH=\$PATH:$myPATH" >> /etc/profile
sudo shutdown -h now

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/645898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】2.单层感知机

目标&#xff1a; 实现一个简单的二分类模型的训练过程&#xff0c;通过模拟数据集进行训练和优化&#xff0c;训练目标是使模型能够根据输入特征正确分类数据。 演示: 1.通过PyTorch生成了一个模拟的二分类数据集&#xff0c;包括特征矩阵data_x和对应的标签数据data_y。标签…

UniApp 2.0可视化开发工具:引领前端开发新纪元

一、引言 在移动互联网迅猛发展的今天&#xff0c;移动应用开发已经成为前端开发的重要方向之一。为了简化移动应用开发流程&#xff0c;提高开发效率&#xff0c;各大开发平台不断推出新的工具和框架。UniApp作为一款跨平台的移动应用开发框架&#xff0c;自诞生以来就备受开…

航运复兴?大摩不信!

大摩认为&#xff0c;从供需关系来看红海危机只是推迟了航运业下行周期的到来&#xff0c;一旦干扰消除&#xff0c;行业可能重回周期性低迷。 红海危机加剧运力紧张&#xff0c;航运市场价格飞涨。 大摩在24日的一份报告中指出&#xff0c;受红海危机干扰航运市场运力&#…

如何恢复未保存或丢失的Word文档?

许多用户会遇到Word文档未保存而关闭的问题。实际上&#xff0c;您不会立即丢失未保存的文档数据。请不要对文档进行进一步的更改&#xff0c;例如修改并再次保存。您仍然有机会恢复未保存的Word文档。有一些方法可以帮助您恢复未保存的 Word 文档。 如果您不幸遇到这样的问题…

基于单片机设计的多功能数字电压表开发

摘 要&#xff1a;在电路设计中我们时常会用到电压表&#xff0c;过去大部分电压表还是模拟的&#xff0c;虽然精度较高但模拟电压表采用用指针式&#xff0c;里面是磁电或电磁式结构&#xff0c;所以响应较慢。为适应许多高速信号领域目前已广泛使用数字电压表。数字电压表的诞…

各大排序算法

目录 插入排序 希尔排序(缩小增量排序) 冒泡排序 快速排序 选择排序 归并排序 插入排序 插入排序的基本思想是,将N个待排序元素分为一组有序表和一个无序表,一开始有序表只有一个元素,无序表中有N-1个元素,排序过程中每次取无序表的第一个元素依次与有序表的元素进行对比…

Leetcode260

260. 只出现一次的数字 III - 力扣&#xff08;LeetCode&#xff09; class Solution {public int[] singleNumber(int[] nums) {//通过异或操作,使得最终结果为两个只出现一次的元素的异或值int filterResult 0;for(int num:nums){filterResult^num;}//计算首个1(从右侧开始)…

c++ 虚函数常见问题

1 虚函数&#xff0c;虚表基础 虚函数&#xff0c;虚表基础 2 虚函数表保存在哪里 ? 虚函数表在编译的时候确定。在 linux 下&#xff0c;保存在只读数据段的重定位段&#xff0c;这个段的名字是 .data.rel.ro。 如下代码&#xff0c;编译之后&#xff0c;使用 readelf -t a…

vue3 vite项目配置了proxy代理情况下查看真实的接口调用地址

vite配置了proxy代理情况下如何查看真实的接口调用地址? 使用vite进行代理 在vite.config.ts配置了代理 在浏览器查看请求头和响应头发现只有代理前的url&#xff0c;没有显示代理后的路径 然后发现一个bypass函数&#xff0c;但是此函数只能修改res响应头的数据&#xff0…

Visual Studio 的调试(一)

最近事儿很多昂&#xff0c;更新速度相较以往慢了许多&#xff0c;备考六月份的四级&#xff0c;还有学校的期末等等&#xff0c;事儿真的太多啦&#xff0c;所以后面的更新速度也会放慢一点&#xff0c;实在是抽不开身啊诸位&#xff0c;相当抱歉&#xff0c;还望诸君见谅 言…

原哥花了1个多月的时间终于开发了一款基于android studio的原生商城app

大概讲一下这个app实现的功能和前后端技术架构。 功能简介 广告展示商品展示跳转淘宝联盟优惠卷购买发布朋友圈宝妈知识资讯商品搜索朋友圈展示/点赞/评论登陆注册版本升级我的个人资料商品和资讯收藏我的朋友圈意见反馈 安卓端技术选型 Arouter组件化daggerrxjavaretrofit…

遇见问题-VMware虚拟机打开运行一段时间后卡死

1.问题原因 因为Windows自带的虚拟化软件Hyper-V与VMware存在冲突。 2.关闭Hyper-V 1.打开【控制面板】-【程序和功能】-【启用或关闭Windows功能】3.关闭HV主机服务 1.右击计算机-》管理-》服务和应用名称-》服务-》找到HV主机服务-》右击属性停止服务 -》启动类型设置为禁…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十三)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 我们&#xff0c;继续讲一…

乡村振兴的农业品牌建设:打造农业品牌,提升农产品附加值,增强乡村经济竞争力,实现美丽乡村经济繁荣

目录 一、引言 二、农业品牌建设的重要性 &#xff08;一&#xff09;提升农产品附加值 &#xff08;二&#xff09;增强乡村经济竞争力 &#xff08;三&#xff09;实现美丽乡村经济繁荣 三、农业品牌建设的现状及问题 &#xff08;一&#xff09;现状 &#xff08;二…

python-10(爬虫)

1.网络爬虫 1.1.引言 我们平时都说Python爬虫&#xff0c;其实这里可能有个误解&#xff0c;爬虫并不是Python独有的&#xff0c;可以做爬虫的语言有很多例如&#xff1a;PHP、JAVA、C#、C、Python。 为什么Python的爬虫技术会异军突起呢&#xff1f; Python火并不是因为爬…

兵器室管控系统|DW-306是一套成熟系统

概述 智慧兵器室管理系统&#xff08;DW-S306&#xff09;是依托互3D技术、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 本解决方案利用现有内部网络&#xff0c;部署部队智能兵器室管理系统&#xff…

使用Django框架搭建Web应用

文章目录 简介安装Django创建一个Django项目创建一个Django应用编写视图配置URL运行开发服务器总结与拓展数据库集成管理后台表单处理模板引擎安全性 简介 Django 是一款基于 Python 语言的开源 Web 应用框架&#xff0c;采用了 MVC&#xff08;模型-视图-控制器&#xff09;设…

数据库系统原理实验报告6 | 视图

整理自博主本科《数据库系统原理》专业课自己完成的实验报告&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本&#xff1a; ​ ———— 本次实验使用到的图形化工具&#xff1a;Heidisql ​ 目录 一、实验目的 二、实验内容 1&#xff0e;根据EDUC数…

Matlab中函数或变量 ‘eeglab‘ 无法识别

EEGLAB 没有安装或添加到 MATLAB 路径中&#xff1a; 确保已经安装了 EEGLAB&#xff0c;并且将其添加到 MATLAB 的路径中。您可以通过在 MATLAB 命令窗口中运行 which eeglab 来检查是否能够找到 EEGLAB。 EEGLAB 函数路径设置错误&#xff1a; 如果已经安装了 EEGLAB&#x…

信息系统项目管理师0131:输出(8项目整合管理—8.7监控项目工作—8.7.3输出)

点击查看专栏目录 文章目录 8.7.3 输出8.7.3 输出 工作绩效报告工作绩效信息可以用实体或电子形式加以合并、记录和分发。基于工作绩效信息,以实体或电子形式编制形成工作绩效报告,以制定决策、采取行动或引起关注。根据项目沟通管理计划,通过沟通过程向项目干系人发送工作绩…