linux 脚本 整数 赋值,shell基础!!熟悉编程规范与变量

一、SHELL规范

SHELL简单介绍

Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell。Bash 的全称为 Bourne Again Shell,是最受欢迎的开源软件项目之一。

SHELL脚本简单的来说,就是将平时使用的各种 Linux 命令按顺序保存到一个文本文件中,然后添加可执行权限,这个文件就成为一个 Shell 脚本了。

SHELL脚本有以下几个要点:

●将要执行的命令按顺序保存到一 个文本文件

●给该文件可执行权限

●可结合各种Shelll控制语句以完成更复杂的操作

执行SHELL脚本

执行脚本,要求文件本身具有 x 权限,在某些安全系统中可能无法满足此条件。鉴于此,Linux 操作系统还提供了执行 Shell 脚本的其他方式——指定某个 Shell 来解释脚本语句,或者通过内部命令 source(或点号“.”)来加载文件中的源代码执行。

常用的执行shell脚本的方法:

●方法一:脚本文件路径(绝对路径与相对路径)

●方法二: sh脚本文件路径

●方法三: source 脚本文件路径

二、SHELL脚本变量

交互式硬件设备

●标准输入:从该设备接收用户输入的数据

●标准输出:通过该设备向用户输出数据

●标准错误:通过该设备报告执行出错信息

1.重定向操作

类型

操作符

用途

重定向输入

<

从指定的文件读取数据,而不是从键盘输入

重定向输出

>

将输出结果保存到指定的文件(覆盖原有内容)

>>

将输出结果追加到指定的文件尾部

标准错误输出

2>

将错误信息保存到指定的文件(覆盖原有内容)

2>>

将错误信息追加到指定的文件中

混合输出

&>

将标准输出和标准错误的内容保存到同一个文件夹中

2.管道符"|"

管道(pipe)操作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。在 Shell 脚本应用中,管道操作通常用来过滤所需要的关键信息。

3.Shell 变量的作用、类型

■变量的作用

●用来存放系统和用户需要使用的特定参数(值)

◆变量名:使用固定的名称,由系统预设或用户定义

◆变量值:能够根据用户设置、系统环境的变化而变化

■变量的类型

●自定义变量:由用户自己定义、修改和使用

●特殊变量:环境变量,只读变量,位置变量,预定义变量

3.1自定义变量

■定义一个新的变量

变量名以字母或下划线开头,区分大小写,建议全大写

格式:变量名=变量值

■赋值时使用引号

●双引号:允许通过$符号引用其他变量值

●单引号:禁止引用其他变量值,$视为普通字符

●反撇号:命令替换,提取命令执行后的输出结果

■整数变量的运算

格式:expr 变量1 运算符 变量2 [运算符 变量3] …

常用运算符

●加法运算: +

●减法运算: -

●乘法运算: *

●除法运算: /

●求模(取余)运算: %

3.2特殊变量

特殊变量可以分为四类:

●环境变量

●只读变量

●位置变量

●预定义变量

■环境变量

环境变量指的是出于运行需要而由 Linux 系统提前创建的一类变量,主要用于设置用户的工作环境,包括用户宿主目录、命令查找路径、用户当前目录、登录终端等。环境变量的 值由 Linux 系统自动维护,会随着用户状态的改变而改变。

在 Linux 系统中,环境变量的全局配置文件为/etc/profile,在此文件中定义的变量作用于所有用户。除此之外,每个用户还有自己的独立配置文件(~/.bash_profile)。若要长期 变更或设置某个环境变量,应在上述文件中进行设置。

■只读变量

Shell 变量中有一种特殊情况,一经设定,其值是不可改变的,这种变量被称为只读变量。在创建变量的时候可将其设置为只读属性,也可以将已存在的变量设置为只读属性,只读变量主要用于变量值不允许被修改的情况。

■位置变量

为了在使用 Shell 脚本程序时,方便通过命令行,为程序提供操作参数,Bash 引入了位置变量的概念。当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符 串参数按照从左到右的顺序依次赋值给位置变量。

●表示为$n, n为1~9之间的数字

■预定义变量

预定义变量是由 Bash 程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。预定义变量使用“$”符号和另一个符号组合表示,较常用的几个预定义变量的含义如下。

$#:表示命令行中位置参数的个数。

$*:表示所有位置参数的内容。

$?:表示前一条命令执行后的返回状态,返回值为 0 表示执行正确,返回任何非 0

值均表示执行出现异常。关于$?变量的使用将在下一章介绍。

$0:表示当前执行的脚本或程序的名称。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一维数组的定义方式

一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为&#xff1a;类型说明符 数组名 [常量表达式];其中&#xff0c;类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数&#xff…

UIButton或UILabel加个下划线

UIButton ####Objective - C LXYHyperlinksButton.h interface LXYHyperlinksButton : UIButton {UIColor *lineColor; }-(void)setColor:(UIColor*)color; 复制代码LXYHyperlinksButton.m #import "LXYHyperlinksButton.h"implementation LXYHyperlinksButton- (id)…

android studio发布项目到github

点击file setting ,打开对话框&#xff0c;如下&#xff0c;判断git是否安装成功 选择GitHub&#xff0c;填写github地址及密码 发布项目&#xff1a; 转载于:https://www.cnblogs.com/haihai88/p/8514683.html

在不使用{}时,else执行到哪里结束

正常情况下,if-else语句使用{}.执行时也执行{}里面的所有语句&#xff0c;但是当语句比较简单时&#xff0c; 可以不使用{},而直接在if或else的后面写要执行的语句。 但是程序只会执行到if或else语句后的第一个“;”其余的程序不在if-else的程序范围内。

6个变态的C语言写的Hello World

下面的六个程序片段主要完成这些事情&#xff1a; 输出Hello, World混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过&#xff0c;只有最后一个需要动用C的编译器g才能编程通过。 hello1.c #define _________ }#define ________ putchar#define _______ main#define …

linux系统pcb软件下载,开源PCB设计软件KiCad致力于下一个大版本的发布

KiCad仍然是PCB设计和其他功能的领先开源电子设计套件。KiCad在2018年取得了成功&#xff0c;System76甚至使用了该软件作为与Thelio台式计算机一起设计的子板PCB的一部分&#xff0c;但展望未来&#xff0c;开发人员仍在努力开发6.0版本。KiCad 6.0发布方式将采用重新设计的GT…

CocoaPods pod install/pod update更新慢的问题

最近使用CocoaPods来添加第三方类库&#xff0c;无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库&#xff0c;加一个参数可以省略这一步&#xff0c;然后速度就会提升不少。加参数的命令如下…

js call(),apply(),对象冒充,改变变量作用域

1.apply(); function box(n1,n2){return n1n2; } function pox(n1,n2){alert(box.apply(this,[n1,n2])); //this指window下全局属性//这里没有返回值,没有运算,通过冒充box里的运算来执行 } pox(10,20); //30 注:如果参数过多,冒充对象传参的时候可以写成arguments fu…

数组元素的地址计算问题(一维到高维)

数组元素存储地址的计算 一维数组 设一维数组A[n]存放在n个连续的存储单元中&#xff0c;每个数组元素占一个存储单元&#xff08;不妨设为C个连续字节&#xff09;.如果数组元素A[0]的首地址是L&#xff0c;则A[1]的首地址是LC&#xff0c;A[2]的首地址是L2C&#xff0c;… …

侯宁:不该捞的别去捞 踏空不是浪费时间

最近&#xff0c;偶然间在网上看到了一则寓言故事&#xff1a;《骆驼与北斗星》。文章不长&#xff0c;但内容丰富&#xff0c;讲得很有趣&#xff0c;很有哲理&#xff0c;也很有启发。尤其是在股市博弈中&#xff0c;许多人、许多机构都会在现实中扮演故事里的不同角色。因为…

大跃进和循序渐进

大跃进和循序渐进本身没有对错&#xff0c;只有跟具体情境结合起来才会产生对错属性。 好的大跃进就是不学走先学跑&#xff0c;deadline是第一生产力&#xff0c;一旦学会了更高级的&#xff0c;低级的自然而然就学会了。 好比武装革命&#xff0c;是先攻打大城市还是攻打农村…

Hibernate 学习(一)

一、Hibernate 简介 1、Hibernate 简介 Hibernate是一个开放源代码的对象关系映射(ORM)框架&#xff0c;它对JDBC进行了非常轻量级的对象封装&#xff0c;它将POJO与数据库表建立映射关系&#xff0c;是一个全自动的orm框架&#xff0c;hibernate可以自动生成SQL语句&#xff0…

(严蔚敏版)数组的顺序存储表示和实现代码

#include<stdarg.h>#include<malloc.h> /* malloc()等 */#include<stdio.h> /* EOF(^Z或F6),NULL */#include<stdlib.h> /* atoi() */#include<io.h> /* eof() */#include<math.h> /* floor(),ceil(),abs() */#include<process.h> /…

特殊权限

2.18特殊的权限set_uid [rootcentos-01 ~]# which passwd //查询一下passwd位置// /usr/bin/passwd[rootcentos-01 ~]# ls -l /usr/bin/passwd //查询一下passwd权限//-rwsr-xr-x. 1 root root 27832 6月 …

我的职场战争--一年来的开发组内战实录

一 战争准备阶段 一年前&#xff0c;国内分社派我带着几名程序员来到日本&#xff0c;进入一个世界级大公司做项目&#xff0c;这里先期驻在了一个日本总社的社员X。没有人想到战争已经临近。 二 战争酝酿阶段 日本人不会叫你闲着&#xff0c;头一个月就开始了下马威。…

linux8重启服务代码,linux(centos8):安装分布式事务服务seata(seata 1.3.0/centos 8.2)

一&#xff0c;什么是seata?Seata:Simpe Extensible Autonomous Transcaction Architecture&#xff0c;是阿里中间件,开源的分布式事务解决方案。前身是阿里的Fescar官方站:http://seata.io/zh-cn/官方代码地址:https://github.com/seata/seata官方文档站:http://seata.io/zh…

数组与矩阵的区别

数组中的元素可以是字符等 矩阵中的只能是数 这是二者最直观的区别。 因为矩阵是一个数学概念&#xff08;线性代数里的&#xff09;&#xff0c;数组是个计算机上的概念。 《精通MATLAB6.5版》&#xff08;张志涌编著&#xff0c;北京航空航天大学出版社&#xff09;中说&…

android自定义view(自定义数字键盘)

序言&#xff1a;在上周的项目中&#xff0c;需要做一个密码锁的功能&#xff0c;然后密码下面还得有键盘&#xff0c;就类似支付宝支付的时候那样&#xff1a; 当然了&#xff0c;我们项目的需求简单点&#xff0c;纯数字的就可以了&#xff0c;然后上周就百度了自定义键盘&am…

linux环境部署ltmj,Linux系统安装与简单配置 图文.docx

合肥师范学院实验报告姓名:课程名称&#xff1a;Linux院(系&#xff1a;计算机学院 专业/年级:实於Lin^系缭公装与苗瑕肚卅1.占克If Jf VVVork51at>un ?- If -JpMHIWortsktKia^2.?JGJiIjxiS4CLM.lt 1H. iuFI?H?*vW ?tVirtujl Machine Wisa rdGimm Oprraimv加蓟aBMkonA …

矩阵的压缩存储

5.3 矩阵的压缩存储 矩阵是很多科学与工程计算问题中研究的数学对象&#xff0c;在此&#xff0c;我们讨论如何存储矩阵的元&#xff0c;从而使矩阵的各种运算能有效第进行。对于一个矩阵结构显然用一个二维数组来表示是非常恰当的&#xff0c;但在有些情况下&#xff0c;比如常…