香橙派3B学习笔记6:基本的Bash脚本学习_UTF-8格式问题

article/2025/6/8 14:48:24

今日学习基本的linux 的一些 bash 脚本

ssh  : orangepi@本地ip
密码 : orangepi

操作系统发行版: 基于 Ubuntu 20.04.6 LTS(Focal Fossa)的定制版本,专门为 Orange Pi 设备优化。PRETTY_NAME="Orange Pi 1.0.6 Focal"

目录

 终端打印输出:

使用 dos2unix 工具

成功运行:

变量使用+用户输入:

条件判断:

for循环:

while循环:

 数组:

函数定义与调用:

文件操作:

参数处理:


 终端打印输出:

先从最简单的打印输出开始

#!/bin/bash
# 一个简单的打印脚本
echo "Hello, World!"

我是在windows系统的txt文本文件写了这行代码,然后改后缀为.sh,

然后拖到linux目录的,这会遇到UTF-8编码的格式问题,这里讲下怎么解决

先尝试能不能正常打开运行脚本:

导航脚本目录:

cd /home/orangepi/Bash_test

给予脚本权限:

chmod +777 hello.sh

运行脚本:

 ./hello.sh

发现没有转换掉windows风格的换行符,导致无法运行:

使用 dos2unix 工具

安装:

sudo apt-get install dos2unix

启动转换:

dos2unix hello.sh

成功运行:

以下的测试基本都要基于cd 到了脚本文件的目录下才能进行!

变量使用+用户输入:

#!/bin/bashname="Alice"
age=25# 获取用户输入
echo "Please enter your name:"
read name
echo "Please enter your age:"
read ageecho "your name is $name and you are $age years old."

条件判断:

#!/bin/bash
# 条件判断示例
echo "Enter a number:"
read num#if 语句用于条件判断。-gt 表示大于,-eq 表示等于,-lt 表示小于。注意条件判断语句两边要有空格。
if [ $num -gt 10 ]; thenecho "The number is greater than 10."
elif [ $num -eq 10 ]; thenecho "The number is equal to 10."
elseecho "The number is less than 10."
fi

for循环:

#!/bin/bash
# for 循环示例
for i in {1..5}; doecho "Number: $i"
done

while循环:

#!/bin/bash
# while 循环示例
count=1#-le 表示“小于或等于”
#-gt 表示大于,-eq 表示等于,-lt 表示小于
while [ $count -le 5 ]; doecho "Count: $count"count=$((count + 1))
done

 数组:

#!/bin/bash
# 数组操作示例
fruits=("apple" "banana" "orange")# 遍历数组
for fruit in "${fruits[@]}"; doecho "Fruit: $fruit"
done# 获取数组长度
echo "Number of fruits: ${#fruits[@]}"

函数定义与调用:

#!/bin/bash
# 函数定义与调用示例
greet() {echo "Hello, $1!"
}greet "Bob"

文件操作:

#!/bin/bash
# 文件操作示例
file="example.txt"# 检查文件是否存在
if [ -f "$file" ]; thenecho "File $file exists."# 读取文件内容while IFS= read -r line; doecho "Line: $line"done < "$file"
elseecho "File $file does not exist."
fi

参数处理:

#!/bin/bash
# 参数处理示例
echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"
echo "Number of arguments: $#"# 处理所有参数
for arg in "$@"; doecho "Argument: $arg"
done


http://www.hkcw.cn/article/GVpivClkea.shtml

相关文章

腾讯下乡了。。。

大家好&#xff0c;我是苍何。 这两天在网上出现很多腾讯元宝在乡下的横幅&#xff0c;着实把我吓了一大跳。 甚至养猪问题也可以直接问元宝&#x1f436; 前两天&#xff0c;刚好回乡下给我儿子过 2 岁生日&#xff0c;家里大婶的弟弟就是专业的养猪大户&#xff0c;在吃饭的…

如何在PowerBI中使用Analyze in Excel

如何在PowerBI中使用Analyze in Excel 之前分享过如何使用DAXStudio将PowerBI与Excel连接 &#xff0c;今天介绍另外一个工具&#xff0c;也可以实现同样的功能&#xff0c;Analyze in Excel。 使用Analyze in Excel 第一步&#xff1a; 首先准备好一个PBIX文件&#xff0c…

接口测试的用例设计

1.简介 在这篇文章里&#xff0c;我们来学习一下接口测试用例设计&#xff0c;主要是来学习一些用例设计要点。其实说白了&#xff0c;接口用例设计和功能用例设计差不多&#xff0c;照猫画虎即可。不要把它想象的多么高大上&#xff0c;多么的难&#xff0c;其实一样&#xff…

AI“实体化”革命:具身智能如何重构体育、工业与未来生活

近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展正在重塑各行各业&#xff0c;而具身智能&#xff08;Embodied AI&#xff09;作为AI领域的重要分支&#xff0c;正逐渐从实验室走向现实应用。具身智能的核心在于让AI系统具备物理实体&#xff0c;能够与环…

车规级BMS芯片国产化!精准电量监测延长电池寿命

通品替代芯片充电管理类应用值得一看&#xff1a;华芯邦以创新技术领航国产化新赛道。 在消费电子、新能源汽车、工业设备等领域&#xff0c;电源管理芯片如同设备的“心脏”&#xff0c;直接决定了产品的续航能力、安全性和用户体验。然而&#xff0c;长期以来&#xff0c;这…

【摘录】LCD/LED/OLED/Micro LED

端午节焦点访谈播出了&#xff1a;成都辰显光电有限公司总经理黄秀颀博士作为科技领军人才代表出镜&#xff0c;分享了其带领团队推进Micro-LED技术创新与产业化。作为显示行业的一份子很惭愧&#xff0c;对这些技术还是一片空白&#xff0c;补补知识吧。 1、LCD&#xff08;液…

C++和C#界面开发方式的全面对比

文章目录 C界面开发方式1. **MFC&#xff08;Microsoft Foundation Classes&#xff09;**2. **Qt**3. **WTL&#xff08;Windows Template Library&#xff09;**4. **wxWidgets**5. **DirectUI** C#界面开发方式1. **WPF&#xff08;Windows Presentation Foundation&#xf…

【氮化镓】钝化层对p-GaN HEMT阈值电压的影响

2021年5月13日,中国台湾阳明交通大学的Shun-Wei Tang等人在《Microelectronics Reliability》期刊发表了题为《Investigation of the passivation-induced VTH shift in p-GaN HEMTs with Au-free gate-first process》的文章。该研究基于二次离子质谱(SIMS)、光致发光(PL)…

Juce实现Table自定义

Juce实现Table自定义 一.总体展示概及概述 在项目中Juce中TableList往往无法满足用户需求&#xff0c;头部和背景及背景颜色设置以及在Cell中添加自定义按钮&#xff0c;所以需要自己实现自定义TabelList&#xff0c;该示例是展示实现自定义TableList&#xff0c;实现自定义标…

VBA 64位API声明语句第010讲

跟我学VBA&#xff0c;我这里专注VBA, 授人以渔。我98年开始&#xff0c;从源码接触VBA已经20余年了&#xff0c;随着年龄的增长&#xff0c;越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友&#xff0c;都来学习VBA,利用VBA,起码可以提高…

【鸿蒙】HarmonyOS NEXT之如何正常加载地图组件

1、不支持模拟器&#xff0c;需要真机&#xff01; 2、Map地图需要在AGC上申请权限&#xff0c;需要在AGC上创建对应的项目 地址&#xff1a; AppGallery Connect 2.1 AGC中项目创建 2.1.1 添加项目 2.1.2 起个名字 2.1.3 添加应用&#xff1a; 2.1.4 选择HarmonyOS APP&…

精美的软件下载页面HTML源码:现代UI与动画效果的完美结合

精美的软件下载页面HTML源码&#xff1a;现代UI与动画效果的完美结合 在数字化产品推广中&#xff0c;一个设计精良的下载页面不仅能提升品牌专业度&#xff0c;还能显著提高用户转化率。本文介绍的精美软件下载页面HTML源码&#xff0c;通过现代化UI设计与丰富的动画效果&…

3. 简述node.js特性与底层原理

&#x1f63a;&#x1f63a;&#x1f63a; 一、Node.js 底层原理&#xff08;简化版&#xff09; Node.js 是一个 基于 Chrome V8 引擎构建的 JavaScript 运行时&#xff0c;底层核心由几部分组成&#xff1a; 组成部分简要说明 1.V8 引擎 将 JS 编译成机器码执行&#xff0…

【后端高阶面经:架构篇】51、搜索引擎架构与排序算法:面试关键知识点全解析

一、搜索引擎核心基石&#xff1a;倒排索引技术深度解析 &#xff08;一&#xff09;倒排索引的本质与构建流程 倒排索引&#xff08;Inverted Index&#xff09;是搜索引擎实现快速检索的核心数据结构&#xff0c;与传统数据库的正向索引&#xff08;文档→关键词&#xff0…

LayoutLM 模型文章总结

模型处理的文本图片样例&#xff1a; LayoutLM&#xff0c;一种简单而有效的文本和布局预训练方法&#xff0c;用于文档图像理解任务。BERT模型中输入的文本信息主要通过文本嵌入和位置嵌入来表示&#xff0c;LayoutLM 增加了两种输入嵌入&#xff1a; (1) 二维位置嵌入&…

低成本单节电池风扇解决方案WD8001

功能说明 1 、充电参数&#xff1a; 5V/500mA &#xff0c;满电 4.2V &#xff0c;充电指示灯为 LED4 &#xff0c;充电亮&#xff0c; 满电熄灭&#xff1b; 2 、工作电压&#xff1a; 2.7---4.2V,BAT 电压低于 2.7V &#xff0c;芯片禁止输出&#xff1b; 3 、工作说明&a…

6个月Python学习计划 Day 13 - 文件操作基础

第一周 Day 1 - Python 基础入门 & 开发环境搭建 Day 2 - 条件判断、用户输入、格式化输出 Day 3 - 循环语句 range 函数 Day 4 - 列表 & 元组基础 Day 5 - 字典&#xff08;dict&#xff09;与集合&#xff08;set&#xff09; Day 6 - 综合实战&#xff1a;学生信息…

解决IDEA插件使用Lombok找不到符号问题

https://juejin.cn/post/7013998800842784782 -Djps.track.ap.dependenciesfalse

应用智能化转型—MCP原理分析

当下AI风头正盛&#xff0c;许多行业都已经进入AI赋能的道路&#xff0c;无论是服务业、工业、还是软件行业。本篇文章我将以软件的智能化转型之MCP原理分析为主题讲解其具体实现方案 MCP我们都知道是一个当下非常火的模型上下文协议&#xff0c;它可以搭建出模型与业务之间的…

【R语言编程绘图-mlbench】

mlbench库简介 mlbench是一个用于机器学习的R语言扩展包&#xff0c;主要用于提供经典的基准数据集和工具&#xff0c;常用于算法测试、教学演示或研究场景。该库包含多个知名数据集&#xff0c;涵盖分类、回归、聚类等任务。 包含的主要数据集 BostonHousing 波士顿房价数据…