1,运行shell脚本有两种办法一般有两种:

先给可执行权限,再进入文件所在的目录,输入:./name.sh;

运行解释器再执行脚本:/bin/sh name.sh,这种情况下,脚本中可以没有#!/bin/bash的情况。

2,shell变量

    变量命名规则:

  1. 命名只能使用英文字母,数字和下划线,首个字符不能以数字

    开头。

  • 变量名和等号,变量名中间也不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字

变量赋值:

直接赋值

可以使用for xx in name 循环,for i in " ls /home"        for i in $(ls /home) ;    ps:第一种i会直接等于‘ls  /home',这和python不一样,它直接就是整个的字符串,第二种比较靠谱,遍历所有/home下的文件夹和文件名。还有一种要区分一下,是for i in `ls /home`,(注意这不是引号,是~那个键),作用和$()一样

使用变量:

比如: your_name="qinjx'

用法1:echo $your_name    $直接加变量名字

用法2:echo ${your_name}    ${}中间是变量名字,花括号有助于帮助shell识别边界。

比如:your_name="qinjx"

        greeting="hello, "$your_name" !"    #用法1
greeting_1="hello, ${your_name} !" #用法2

     特殊用法:只读变量:readonly your_name,加上readonly以后,该变量只能被读,不能被重新赋值,不能改变。

删除变量:unset your_name ,注意不可以删除只读变量

变量类型

1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

        2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

        3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

    shell字符串

shell中变量的类型基本就两种,数字和字符串,字符串可以使用单双引号来表明,双引号比较好,因为双引号内部支持转义字符和引用其他变量。

比如:

astring='qinjx'

        str="Hello, I know you are \"$astring\"! \n"

    常用字符串操作

          astring="hello shell"

获取字符串长度:echo ${#astring}    输出11

截取字符串:echo ${astring:0:4} 输出hell  和python不同,它表示从0后面的个字符串开始,向后截取4个,顺便说一句,shell的下标和python不一样,shell下标从1开始。

查找字符串:echo 'expr index "$astring" o`  输出5 。(这是反引号)意思是从变量astring中查找字符o,

3 shell数组

shell支持数组。数组的下标从0开始。数组用小括号表示,数字之间用空格分开。

    数组的定义方法1:alist=(1 2 3 4 5)

方法2:alist[0] =1;alist[1]=alist[2]=3;alist[3]=4...

读取数组:${数组名[下标]},比如${alist[0]} ,@可以表示数组中所有的下标:${alist[@]}

  获得数组元素个数:echo ${#alsit[@]}

获得数组某个元素的长度:echo ${#alist[number]}

4 shell注释

两种注释应该够用了。

1,#在开头

2,

:<<EOF
注释内容...
注释内容...
注释内容...
EOF

    

linux中的shell编程----基础的更多相关文章

  1. Linux学习之Shell编程基础

    转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...

  2. 基于Linux系统的Shell编程-基础篇

    1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@C ...

  3. Linux之19——Shell编程基础详解

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  4. Linux学习之二十一-shell编程基础

    Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...

  5. Linux中的shell

    shell的含义: 首先shell的英文含义是"壳": 它是相对于内核来说的,因为它是建议在核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核. Li ...

  6. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

  7. Linux中的shell到底是什么?

    (曾经有一段充足的时间放在我面前,可以学linux,而我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此.) 最近,要将项目代码部署到linux环境下运行,但是对linux毫无基础,之前 ...

  8. Linux中的shell到底是什么

    (引自:https://zhidao.baidu.com/question/557066905.html) [一] shell的含义: 首先shell的英文含义是"壳": 它是相对 ...

  9. 【转】Shell编程基础篇-上

    [转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应 ...

随机推荐

  1. MooFest POJ - 1990 (树状数组)

    Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gather ...

  2. Deepin或者Ubuntu上永久配件navicat

    1.深度商店下载安装Navicat,期间可能会要求安装wine等. 2.安装完毕      终端环境下找到Navicat的安装目录       langzi@langzi-PC:~$ whereis ...

  3. 给你的手机加上安全保障,请设置SIM卡PIN码

    [手机上了锁,为啥还丢钱?专家支招:设置SIM卡PIN码]智能手机一旦丢失,不仅会带来诸多不便,甚至还会造成个人隐私泄露及财产损失. 然而很多人认为,自己已经设置了手机屏锁.支付密码.指纹锁等防御措施 ...

  4. 兄弟连Linux运维学习笔记

    最新经典linux运维兄弟连Linux运维学习笔记... --------------- 全程1.5倍播放.加油我一定可以学完Linux----------------------Unix与Linux ...

  5. 20165232 学习基础和c语言基础调查

    做中学读后感 学习是要思考的,仅仅实践是不够的: 不光会动手,还要理解背后的原理 不光会用工具,还要理解支撑的理论 技能是分层次的: 一项技能的掌握程度分为:新手/高级初学者/合格者/精通/专家 对技 ...

  6. /etc/fstab 文件挂载配置文件

    (1)/etc/fstab 每行定义一个要挂载的文件系统 mount -a 自动挂载/etc/fstab文件没有挂载的设备,不管已挂载过的设备 如果想刷新修改过已挂载的设备,mount -o remo ...

  7. Hbase运维手册(1)

    1. region情况 需要检查 1. region的数量(总数和每台regionserver上的region数) 2. region的大小 如果发现异常可以通过手动merge region和手动分配 ...

  8. HDFS-Shell 文件操作

    一.操作 HDFS 上的文件有两个命令可以用 hdfs dfs:只能操作 HDFS 上的文件 Usage: hdfs [--config confdir] [--loglevel loglevel] ...

  9. a标签与js的冲突

    如上图,需要做一个页面,点击左边的标题,右边就显示左边标题下的子标题的集合, html代码如下: <div id="newleft"> <ul> <l ...

  10. .NET获取当前程序所在电脑的CPU和内存使用率

    using System; using System.Diagnostics; using System.Text; using System.Runtime.InteropServices; nam ...