shell基本语法

linux下执行.sh文件的方法和语法 linux环境下shell使用,linux下执行.sh文件的方法和语法 立即下载

Shell语法

Shell是一个命令行解释器,他为用户提供一个向Linux内核发送请求以便于运行程序的界面系统级程序。

脚本格式要求

  1. 脚本以#!/bin/bash开头
  2. 脚本需要有可执行权限
执行sh文件时,需要有执行权限
chmod u+x ./hello.sh
./hell.sh  # 可以执行成功

或者直接
sh ./hello.sh


Shell变量

Linux Shell中的变量分为,系统变量和用户自定义变量

系统变量:$HOME,$PWD,$SHELL,$USER

定义shell变量

定义变量:变量名=值

撤销变量:unset 变量

声明静态变量:readonly 变量,不能unset

规则

  1. 变量名称可以由字母、下划线和数字组成,但是不能以数字开头。
  2. 等号两侧不能有空格
  3. 变量名称一般习惯为大写

A=$(date),将命令的返回值赋值给A

A=`date`,将命令的返回值赋值给A



设置环境变量

export 变量名=变量值:将shell变量输出为环境变量/全局变量

source 配置文件:将修改后的配置文件立即生效

echo $变量名:查询环境变量的值

将环境变量写在/etc/profile文件中


vim命令行模式:set nu显示行号

# shell文件,多行注释语法
:<<!
多行注释内容
!


位置参数变量

执行shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量

$n:n为数字,$0表示命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包括如${11}

$*:这个变量代表命令行所有的参数,$*把所有的参数看成一个整体

$@:这个变量代表命令行所有的参数,$@把每个的参数区分对待

$#:这个变量代表命令行中所有参数的个数



预定义变量

shell本身中定义好的变量

$$:当前进程的进程号

$!:后台运行的最后一个进程的进程号

$?:最后一次执行的命令的返回状态。如果是0,则说明上一次命令正确执行;如果非0,则说明上一次命令执行不正确。


/root/shcode/text.sh &:以后台的方式运行



运算符

三种写法:$((运算式))或者$[运算式]或者expr m + n // 全称expression 表达式

推荐第二种

注意expr运算符间要有空格,需要将expr的结果赋值给某个变量,使用``

expr \*,乘号需要加上\。

三种写法(2+3)*4
RE1=$(((2+3)*4))

RE2=$[(2+3)*4]

RE=`expr 2 + 3`
RE3=`expr $RE \* 4`


条件判断

判断语句

基本语法:[ condition ],注意condition前后有空格

常用判断条件

=:判断字符串是否相等

两个整数比较

lt:小于

le:小于等于

eq:等于

gt:大于

ge:大于等于

ne:不等于

文件权限判断

-r:读的权限

-w:写的权限

-x:执行的权限

文件类型判断

-f:文件存在并且是一个常规的文件

-e:文件存在

-d:文件存在并且是一个目录

if判断

基本语法
if [ 条件判断式 ]
then
	代码
fi

或者
if [ 条件判断式 ]
then
	代码
else
	代码
fi

或者多分支
if [ 条件判断式 ]
then
	代码
elif
	代码
fi


case语句

case $变量名 in
"值1")
	代码
	;;
"值2")
	代码
	;;
*)
	代码
	;;
esac


for循环

for 变量 in 值1 值2 值3
do
程序/代码
done


for(( 初始值;循环控制条件;变量变化))
do
程序/代码
done


while循环

while [ 条件判断式 ]
do
程序/代码
done


read读取控制台输入

read 选项 接受的变量
选项:
-p:指定读取时的提示符
-t:指定读取时等待的时间(秒)

例如:
read -p "请输入NUM1=" NUM1
echo $NUM1

read -t 10 -p "请在10秒内输入NUM2=" NUM2
echo $NUM2


函数



系统函数

basename:返回完整路径最后/的部分,常用于获得文件名

basename [pathname] [suffix]

basename [string] [suffix]

suffix为后缀,如果它被指定了,basename会将pathname或string中的suffix去掉


dirname:返回完整路径最后/的前面的部分,常用于返回路径部分

dirname 文件的绝对路径



自定义函数
基本语法
[ function ] funname[()]
{
	Action
	[return int;]
}

调用函数,直接写函数名:funname [值]
ZYNQ-Video out IP与Video Timing Controller IP协同工作模式解析 本文深入解析了ZYNQ平台上Video out IP与Video Timing Controller IP的协同工作模式,详细介绍了它们的架构、工作原理及配置要点。通过AXI4-Stream接口实现高效视频数据传输,并结合HDMI输出系统设计实践,为开发者提供了实用的调试技巧和性能优化建议。 阅读详情

相关推荐

数学不好是原罪——高等数学笔记(汇总版)

这是本人之前考研的高数手写笔记,工科学硕数一考了146(满分150),笔记有一定参考价值,欢迎大家收藏借鉴。

xuuyann 5万+

SH 语法概要

shell

GreekJ的专栏 1417

【硬核指南/MI50 32G/Ubuntu】从零部署大模型:MI50显卡Ubuntu系统驱动安装与避坑全记录

本文详细记录了在Ubuntu系统上为AMD MI50显卡安装驱动并部署大模型的完整流程,包括硬件兼容性检查、BIOS关键设置、系统安装优化、ROCm驱动安装及常见问题解决方案。特别针对MI50显卡在X99平台上的特殊配置需求提供了实用技巧,帮助用户避免常见陷阱,提升大模型训练效率。

weixin_42520909的博客 803

linux下sh脚本 $,Shell中的${}、##和%%使用范例

今天看一个脚本文件的时候有一些地方不太懂,找了一篇文章看了一些,觉得不错,保留下来。假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.tx...

weixin_39867509的博客 3308

高通Camera HAL3调试实战:如何用camxoverridesettings.txt高效抓取日志与dump图像数据

本文深入探讨了高通Camera HAL3调试中camxoverridesettings.txt文件的高效应用,重点介绍了如何通过该文件精准控制日志输出级别与dump图像数据,帮助开发者快速定位移动影像系统中的问题。文章详细解析了日志分级配置、图像数据捕获技巧及典型问题排查流程,为高通Camera HAL3项目开发提供了实用技术点。

weixin_30315905的博客 861

免费获取船舶轨迹数据?手把手教你用Python处理中国海洋卫星AIS数据

本文详细介绍了如何免费获取中国海洋卫星AIS数据,并使用Python进行船舶轨迹数据的处理与分析。从数据源评估到自动化处理流水线,再到高级分析与可视化技巧,手把手教你避开常见问题,实现高效数据处理。特别适合航运数据分析、物流优化和海上安全研究等领域的研究者和开发者。

weixin_42616115的博客 320

.sh文件规则 .sh文件执行方法

.sh文件规则介绍: 1 .sh文件开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。 要使编写脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 2 注释 在进行shel...

凝步的博客 9508

从开通VPS到搭建宝塔面板全教程

你在输入域名(此时我们可能没有类似aaa.com这样的域名,所以要输入VPS的IP地址)的时候,下面的根目录也会跟着变动,等输入完成后,你可以把根目录再改回成/www/wwwroot/dq。这时,在你的浏览器中,输入外网面板地址的URL,输入username和password,即可登陆宝塔面板。第一次登陆,需要绑定你的宝塔账号,你可以到宝塔的注册界面,用手机注册一个,然后绑定,首先看一下你的VPS操作系统是什么类型的(其实你在选择VPS的时候,就已经选定了,我选择的事Centos系统)。

kxltsuperr的专栏 3729

【汇总】sh语法汇总

    test -d $nginx_path || mkdir -p $nginx_path     ============== 单引 双引 反引用 []   [[]]     hard quote:单引号,关闭所有的meta(什么是meta,自己查吧) soft quote:双引号,关闭大部分的meta,但是某些保留,例如$,括在双引号中的三种特殊字符不被忽略:$,\,...

soyo的专栏 1754

【无人机基站】基于K-mean算法实现无人机基站部署附matlab代码

【无人机基站】基于K-mean算法实现无人机基站部署附matlab代码

天天酷科研的博客 239

Xilinx FPGA ICAP原语实现多重配置

众所周知,常见的FPGA通常为SRAM结构,固件程序一般存放在外置的串行Flash中,比如SPI Flash,M25P16或N25Q128等。 FPGA启动时,一般先从SPI起始地址开始加载数据到内部的SRAM,加载完成、校验通过则会直接运行。 那么有没有可能在SPI Flash中存放两个或多个FPGA固件呢?

whik1194的博客 4611

sh 基础语法

.sh 基础语法1. 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号 #! 用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用 /bin/sh 来执行程序。 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。 要使编写脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行2. 注释在进行 shell 编程

tealex的专栏 7534

【Bug已解决】Anthropic tool_result 找不到对应 tool use id 解决方案

方案适用场景推荐指数每个tool_use必须生成对应tool_result最基础的原则,所有Harness都必须遵守⭐⭐⭐⭐⭐裁剪历史时成对处理实现了上下文裁剪/压缩逻辑的Harness⭐⭐⭐⭐⭐并行工具调用结果数量校验支持多工具并行调用的场景⭐⭐⭐⭐使用官方SDK高层封装不需要特别定制消息组装逻辑⭐⭐⭐⭐请求前主动校验中间件追求生产级健壮性,提前拦截问题⭐⭐⭐⭐⭐这类报错,本质上是。

一键难忘的博客 1万+

Shell基本语法

shell基本语法笔记

m0_72605401的博客 1132

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

shell的基本语法

http://blog.jobbole.com/103790/

hawk2844的专栏 403

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Shell -- 基本语法

全局配置文件/etc/profile、/etc/bashrc,且系统建议最好创建在/etc/profile.d/,而非直接修改主文件,修改全局配置文件,影响所有登录系统的用户。echo $HISTFILE -- 查询Shell History中保留的命令记录所在的文件。+历史命令的ID : 调用历史命令eg:!$*:执行脚本传入参数的列表(不包括$0) -- 所有的参数是一个整体。Ctrl+P:向上浏览历史命令。Ctrl+Z:将当前正在运行的命令置于后台。$$:进程Id,脚本运行的当前进程Id号。

panda37的专栏 789

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

shell脚本基本语法

用户自定义的变量也叫本地变量,只在定义它的当前shell中才也可以使用。参考变量定义中的变量赋值即可。参数说明最后一次执行命令的返回状态,如值为0则说明成功,如值为非0,则说明命令执行不正确$$当前进程的进程号后台运行的最后一个进程的进程号02。

jdjjdhj的博客 840

shell脚本基本语法详解

Shell 脚本的基本语法非常灵活,适合自动化处理各种系统任务。掌握变量、运算符、条件判断、循环、函数等基本语法后,可以编写出强大且高效的脚本。

jkzyx123的博客 1335

Shell的基本语法结构

Shell的基本语法结构 文章目录Shell的基本语法结构一、SHELL介绍1. 编程语言分类2. shell简介3. shell脚本二、变量的定义1. 变量是什么?2. 什么时候需要定义变量?3.变量如何定义?4. 变量的定义规则5. 变量的定义方式有哪些?6. 变量的分类 一、SHELL介绍 前言: 计算机只能认识(识别)机器语言(0和1),如(11000000 这种)。但是,我们的程序猿们不...

wolfGuiDao的博客 2127

理解 Shell 脚本基本语法

Shell 脚本是一种强大的工具,用于自动化任务、执行系统管理任务以及简化复杂的操作。本文将介绍 Shell 脚本的基本语法,包括脚本头部、注释、变量、命令执行、条件判断、循环和函数。

weixin_48113578的博客 690

Linux之Shell脚本基本语法

用户自定义的变量也叫本地变量,只在定义它的当前shell中才也可以使用。参考变量定义中的变量赋值即可。参数说明最后一次执行命令的返回状态,如值为0则说明成功,如值为非0,则说明命令执行不正确$$当前进程的进程号后台运行的最后一个进程的进程号02。

oydcm的博客 1007

shell语法基本教程

shell语法基本教程。大量示例,菜鸟必看~

IT_Most的博客 930

【Shell 编程】——常用基本语法及实例解析

在 Shell 编程中,有多种括号语法,每种括号都有特定的用途。语法用途()创建子 Shell / 数组(())算术运算[]逻辑测试(test命令)[[ ]]高级逻辑测试(支持模式匹配){}变量扩展 / 命令块$( )命令替换(( ))$(( ))算术运算。

Huazzi的博客 860

shell语法(一文搞定shell基本语法)

本文介绍了Shell脚本的基础语法,包括脚本执行方式、注释、变量操作、数组使用、函数和expr、echo 、test等命令,涵盖了shell基本语法内容

weixin_51713993的博客 1056

Shell的基本语法

name="张三" # 定义变量,等号两边不能有空格age=20echo $name # 使用变量:$变量名echo ${name} # 推荐使用大括号。

lydeee的博客 228

tcsh shell 基本语法简介

Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的 Shell 种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)Shell for Root(/sbin/sh)。

hu491199877的博客 2759
上一篇: linux主机名设置、进程管理、服务管理、RPM和YUM
下一篇: python爬虫基础,正则、xpath、bs4(详细)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力生活的黄先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值