[转载]Shell脚本初学者的入门知识

LinuxShell编程1———shell基础命令 可以由字母、数字、下划线组成, 不能以数字开头, 不能是关键字,见名知意。变量名=“变量值” 或者 变量名=变量值注意:变量名与变量值等号之间不能有空格,不然就定义失败。调用(提取)变量:$变量名 或${变量名}Shell数组用括号来表示,元素用空格分割开,语法格式:定义数组 :数组名=(值1 值2 ... 值n)$@内置变量,脚本外输的变量值,我们就调用这个函数进行判断。返回值0是服务开启,非0是未开启。修改颜色添加时间sed是一个用于:过滤并转换文本行的流编辑器。 阅读详情
1.建立和运行shell程序
什么是shell程序呢? 简单的说shell程序就是一个包含若干行
shell或者linux命令的文件.
象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.
在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整
的程序文件.
执行shell程序文件有三种方法
(1)#chmod +x file(在/etc/profile中,加入export PATH=${PATH}:~/yourpath,就可以在命令行下直接运行,像执行普通命令一样)
(2)#sh file
(3)# . file
(4)#source file
在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash,
#! /bin/csh,/bin/tcsh,还是#! /bin/pdksh .
2.shell中的变量
(1)常用系统变量
  $ #     :保存程序命令行参数的数目
  $ ?     :保存前一个命令的返回码
  $ 0     :保存程序名
  $ *     :以("$1 $2...")的形式保存所有输入的命令行参数
  $ @     :以("$1""$2"...)的形式保存所有输入的命令行参数
(2)定义变量
  shell语言是非类型的解释型语言,不象用C++/JAVA语言编程时需要事先声明变量.给一
个变量赋值,实际上就是定义了变量.
  在linux支持的所有shell中,都可以用赋值符号(=)为变量赋值.
如:
abc=9 (bash/pdksh不能在等号两侧留下空格 )
set abc = 9 (tcsh/csh)
  由于shell程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放
整数.
如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在变量赋值之后,只需在变量前面加一个$去引用.
如:
echo $abc
(3)位置变量
当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里.
其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留
这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.

3.shell中引号的使用方法
shell使用引号(单引号/双引号)和反斜线("/")用于向shell解释器屏蔽一些特殊字符.
反引号(")对shell则有特殊意义.
如:
abc="how are you" (bash/pdksh)
set abc = "how are you" (tcsh)
这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.
abc1='@LOGNAME,how are you!' (bash/pdksh)
set abc1='$LOGNAME,how are you!' (tcsh)
abc2="$LOGNAME,how are you!" (bash/pdksh)
set abc2="$LOGNAME,how are you!" (tcsh)
LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后,
abc1的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!.
象单引号一样,反斜线也能屏蔽所有特殊字符.但是他一次只能屏蔽一个字符.而不能屏蔽
一组字符.
反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将
一个命令的运行结果传递给另外一个命令.
如:
contents=`ls` (bash/pdksh)
set contents = `ls` (tcsh)
4.shell程序中的test命令
在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环
语句中被用来判断某些条件是否满足.
test命令的语法格式:
test expression
或者
[expression]

在test命令中,可以使用很多shell的内部操作符.这些操作符介绍如下:
(1)字符串操作符 用于计算字符串表达式
test命令   |   含义
-----------------------------------------
Str1 = str2 | 当str1与str2相同时,返回True
Str1! = str2| 当str1与str2不同时,返回True
  Str     | 当str不是空字符时,返回True
  -n str   | 当str的长度大于0时,返回True
  -z str   | 当str的长度是0时,返回True
-----------------------------------------
(2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数
test表达式   |   含义
---------------------------------------------
Int1 -eq int2|当int1等于int2时,返回True
Int1 -ge int2|当int1大于/等于int2时,返回True
Int1 -le int2|当int1小于/等于int2时,返回True
Int1 -gt int2|当int1大于int2时,返回True
Int1 -ne int2|当int1不等于int2时,返回True
-----------------------------------------
(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等
test表达式   |   含义
------------------------------------------------
-d file     |当file是一个目录时,返回 True
-f file     |当file是一个普通文件时,返回 True
-r file     |当file是一个刻读文件时,返回 True
-s file     |当file文件长度大于0时,返回 True
-w file     |当file是一个可写文件时,返回 True
-x file     |当file是一个可执行文件时,返回 True
------------------------------------------------
(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式
test表达式   |   含义
----------------------------------------------------------
! expr     |当expr的值是False时,返回True
Expr1 -a expr2|当expr1,expr2值同为True时,返回True
Expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True
-----------------------------------------------------------
注意:
tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh
支持的表达式于C中的表达式相同.通常使用在if和while命令中.
tcsh表达式   |   含义
-------------------------------------------------------
Int1 <= int2 |当int1小于/等于int2时,返回True
Int1 >= int2 |当int1大于/等于int2时,返回True
Int1 < int2   |当int1小于int2时,返回True
Int1 > int2   |当int1大于int2时,返回True
Str1 == str2 |当str1与str2相同时,返回True
Str1 != str2 |当str1与str2不同时,返回True
-r file     |当file是一个可读文件时,返回True
-w file     |当file是一个可写文件时,返回True
-x file     |当file是一个可执行文件时,返回True
-e file     |当file存在时,返回True
-o file     |当file文件的所有者是当前用户时,返回True
-z file     |当file长度为0时,返回True
-f file     |当file是一个普通文件时,返回True
-d file     |当file是一个目录时,返回True
Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True
Exp1 && exp2 |当exp1和exp2的值同为True时,返回True
! exp       |当exp的值为False时,返回True
Shell脚本编程30分钟入门学习 Shell脚本编程30分钟入门学习转载 阅读详情

相关推荐

Mybatis Provider注解实现批量插入

需求 借助mybatis 的provider实现一个比较通用的,批量插入数据接口。 Mapper接口 第一参数为需要批量插入的数据,第二个参数为对应实体类的class public interface BaseDao<T> { @InsertProvider(type = BaseProvider.class, method = "batchInsert") int batchInsert(@Param("lists") List<T&gt

小楼夜听雨的博客 2417

Linux学习之Shell基础

一、Shell概述 Shell是什么:Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。 shell的分类 Bourne Shell:从19...

我不是什么好人 4246

Unity类银河战士恶魔城学习总结(P103之前 Enemy相关 , 骷髅战士,状态机,敌人状态,)

udemy的Alex银河战士恶魔城,记录我自己的学习,代码会逐渐每一p更新,仅供参考学习。

suzh1qian的博客 1631

最全Linux Shell详细教程

若不存在,则创建一个文件,使用touch来创建,创建完成后离开;如果存在,判断该名称是否为文件,若为文件,则显示其行数;如果不是文件,则离开;我们在这里就在本地测试学习,因此我在这里先不建议大家这么着急去买服务器来学,这样比较费钱,等我们学好这些基础之后,再去上手服务器,那将是手到擒来。condition 一般为条件表达式,如果返回值为 false,则继续执行循环体内的语句,否则跳出循环。这里又到了最后了,补充一下printf跟echo命令是一样的作用,因此我就不演示了,统一用echo来输出。

独旅天涯 3万+

别再搞混了!Vue3里xgplayer播放FLV视频与FLV直播流,配置到底差在哪?

本文详细解析了在Vue3项目中使用xgplayer播放FLV视频与FLV直播流的配置差异,帮助开发者避免常见错误。通过对比点播与直播的核心协议差异、插件选择及配置参数,提供实战代码示例和性能优化技巧,确保流畅播放体验。特别针对直播流场景,深入讲解专属配置和问题排查方法。

weixin_28687331的博客 150

深入解析MSPM0系列Keil开发中‘ti_msp_dl_config.h‘缺失问题的根源与修复

本文深入解析TI MSPM0系列Keil开发中'ti_msp_dl_config.h'文件缺失问题的根源与修复方法。该错误常见于编译时提示file not found,主要因SysConfig工具未正确生成或工程路径配置错误导致。文章提供了从环境检查、手动生成文件到工程配置调整的系统化解决方案,帮助开发者快速解决这一常见KEIL开发难题。

gold的博客 970

Linux 操作基础——shell

在shell中有一些具有特殊意义,称为shell元字符(shell Metacharacters)。的时候,可能会比较枯燥,但是既然选择学习知识,确实是一件令人非常枯燥无味的事情。的效率更高,坚持下去,你一定可以看到别人看不到的风景,写的有错误或不恰当的地方还请给为小伙伴批评指正!是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器),接收用户输入的命令并把它送入内核执行,在用户与操作系统之间进行交互。还是比较有趣的,学到后面,你肯定会感觉。系统中具有极其重要的地位。,但不能匹配首字符是。.

m_de_g的博客 2943

U2Net网络实战:从原理到代码实现(附背景去除应用)

本文深入解析了U2Net网络的原理与代码实现,重点剖析了其独特的嵌套U型结构(RSU模块)和显著图融合机制。通过实战演示,指导读者如何加载预训练模型并应用于精准的图像背景去除任务,为电商、摄影等领域提供高效的自动化抠图解决方案。

nn3456的博客 491

Linux 的 Shell 详解:从入门到上手

Shell是Linux系统的命令行解释器,充当用户与内核之间的"翻译官"。它接收用户输入的命令,解析后传递给内核执行,并将结果返回给用户。文章从Shell概念入手,介绍了常见Shell类型(如bash、zsh等),详细讲解了文件操作、内容查看等基础命令,以及管道、重定向等高级用法。重点阐述了Shell脚本编程,包括变量、条件判断、循环结构和函数等核心要素,并提供了日志分析等实战案例。最后总结了Shell学习路径,强调通过实践掌握这一高效工具,实现工作自动化。全文系统性地介绍了Shell从

2501_90200491的博客 2210

R语言机器学习算法实战系列(十三)随机森林生存分析构建预后模型 (Random Survival Forest)

本教程运用随机森林生存分析筛选与患者生存状态显著相关特征。该方法借随机森林这一强大机器学习算法,构建多棵决策树并集成结果,以提高生存分析准确性,识别关键生物标志物。接着,利用选定特征构建风险得分,将多个特征转化为单一数值,量化患者风险水平。之后,依据风险得分将患者分为高、低风险亚型,为临床治疗提供个性化指导。最后,通过分析时间依赖的 ROC 曲线评估模型长期预测能力。此曲线计算不同阈值下的真正例率与假正例率,在多个时间点评估,全面展现模型长期稳定性与准确性。

专注生信领域 2018

yocto系列讲解[实战篇]54 - 添加Qt5和生成带Qt5的SDK

为了满足读者盆友想看yocto如何添加qt5的需求,今天就开始尝试添加meta-qt5

fulinux的博客 3870

Bourne shell编程入门及脚本测试

Bourne shell编程入门及脚本测试(转)*****************************************************************************本文由正泰linux http://linux-down.kmip.net 搜集,整理,如需转载,请注明出处!本站有大量的linux电子教程,软件,技术文档,欢迎大家访问!站长阿泰qq:

谷雨霖 msn:cabinhome@sohu.com 2188

Mastercam软件二次开发:使用C#进行Mastercam二次开发

C#(发音为“C Sharp”)是一种现代、面向对象的编程语言,由微软开发,首次发布于2000年。它结合了C和C++的强大功能,同时引入了Java的垃圾回收机制,使得C#在开发效率和运行性能之间找到了一个良好的平衡点。C#的设计目标是提高开发者的生产力,它支持多种编程范式,包括面向对象、泛型、委托和事件等,这使得它成为开发Windows应用程序、Web应用程序、游戏(尤其是使用Unity引擎)和企业级应用的理想选择。

kkchenjj的博客 2214

如何快速入门 Shell 脚本?

这是陈树义的第030期分享作者 l 陈树义来源 l 陈树义(ID:Spark-tree)转载请联系授权(ID:Spark-tree)Shell 语言作为类 Unix ...

陈树义 174

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

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Shell脚本基础(转载)

原网页地址:https://www.cnblogs.com/zhang-jun-jie/p/9266858.html

Sun_940903的博客 2204

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LINUX命令和SHELL

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

Miraitowa_xu的博客 1617

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux shell 简介

Linux shell 知识简介

小立仔 3843

Linux之shell命令

1、shell入门 在计算机科学中,shell就是一个命令解释器。 shell是位于操作系统和应用程序之间,是他们二者最主要的接口。 shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。 一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具 2、shell的使用方式 手工方式: 手工敲击键盘,直接输入命令,按Enter后。执行命令,显示命令执行的结果.重点:逐行输入命令、逐行进行确认执行 脚本方式: 我们把手工执行的命令,写到一个

rookie_shun的博客 9999

linux shell脚本,入门到实战详解

shell脚本就是一些命令的集合,shell 本质上是 linux 命令,一条一条命令组合在一起,实现某一个目的,就变成了shell脚本。它从一定程度上减轻了工作量,提高了工作效率。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

WanWenQingqijia的博客 3996

【Linux】shell及其运行原理

该博客讲了shell及其运行原理,什么是shell,为什么Linux不安装图形化界面,以及对shell的感性理解。

m0_52094687的博客 2396

Linux-Shell编程

文章目录Shell编程1.为什么要学习 Shell 编程2.Shell 是什么3.shell 编程快速入门1.脚本格式要求2.编写第一个 Shell 脚本3.脚本的常用执行方式4.Shell 的变量1.Shell 的变量的介绍2.Shell 变量的定义3.定义变量的规则4.将命令的返回值赋给变量5.设置环境变量1.基本语法2.快速入门6.位置参数变量1.介绍2.基本语法3.实际案例7.预定义变量1.基本介绍2.基本语法3.实际案例8.运算符1.基本介绍2.基本语法3.实际案例9.条件判断1.基本语法2.实际

ginger_mr的博客 3132

Linux脚本(shell)详解

Linux脚本(shell)详解

墨鸦的博客 3万+

linux-shell语法、例子(case)

linux-shell脚本

DCHAO的博客 2631

linux -- shell篇

shell基础

海棠的博客 707

【Linux】shell命令以及运行原理和Linux权限的理解

Shell命令以及运行原理、Linux中文件属性、文件权限的理解。

不 良的博客 2810

【Linux】基础篇三--linux shell命令

Linux学习3--linux shell命令一、shell基本维护指令1、man命令2、passwd命令3、su命令4、echo命令5、date、clear、df、du命令的用法二、linux的用户管理1、用户管理相关文件介绍2、用户管理相关命令介绍三、进程管理相关命令1、进程概念2、使用ps命令查看进程3、使用kill命令终止进程四、文件系统的类型1、Linux文件系统的类型2、Linux文件系统的结构五、文件系统相关命令1、file、mkdir、rmdir、ln命令2、文件的归档和压缩六、linux网

修成真的博客 9546
上一篇: [转载]Bjarne Stroustrup语录 我非常喜欢的文章
下一篇: [转载]Const用法小结
csdboy
博客等级 码龄25年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值