1、查看系统所有shell和默认shell

查看系统所有的shell:

cat /etc/shells

查看系统默认shell:

echo  $SHELL

2、第一个shell脚本,打印字符串Hello World

新建文件1.sh,在1.sh中输入代码:

 #!/bin/sh
echo "Hello World"

第一行#!告诉脚本要用什么解释器来执行,/bin/sh是解释器的路径。

第二行echo命令表示向标准输出文件(一般是指显示器)输出文件,""包裹的表示字符串。

3、执行shell脚本

a、

 #进入脚本所在路径
#给脚本赋予可执行权限
chmod +x .sh
#执行脚本
./.sh

b、

#无需在脚本第一行指定解释器信息
1 /bin/sh .sh

c、

 source  .sh
#source可以简写成. #source .sh等价于
. .sh #执行当前目录下的1.sh
. ./.sh

4、shell变量

在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

定义变量的三种方式:

 var_name=value1
var_name3='value2'
var_name3="value3"
#=两边不能有空格

shell变量命名规范:

  • 变量名由数字、字母、下划线组成;
  • 必须以字母或者下划线开头;
  • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

定义变量举例:

 name="Stephen Wang"
job="JAVA Dev"
company="ZTE" echo ${name}

单引号和双引号的区别:

使用单引号包裹变量时{}里面的内容会原样输出;双引号包含变量时会先解析变量。例子如下:

 #!/bin/sh
name="Vicent"
info='My name is ${name}'
echo ${info}#My name is ${name}
 info="My name is ${name}"
echo ${info}#My name is Bob

引用变量:

 #引用变量在变量名称前面加上$即可
${name}
$name
 变量外面{}是可选的,作用是为了识别边界,应用举例
name="Bob"
echo "My name is ${name}what is your name?"

建议引用变量时都加上{}

修改变量值:

 name="Bob"
echo "my name is ${name}"
#修改name的值为Vicent
name="Vicent"
echo "My name is ${name}"

只读变量:

 name="Bob"
echo "my name is ${name}"
#定义name为只读变量
readonly name
name="Vicent"
echo "My name is ${name}"

删除变量:

 #删除变量name
unset name

将命令的运行结果赋值给变量:

 #var1=`command1`
#var2=$(command1) var1=`pwd`
echo ${var1}
var2=$(date)
echo ${var2}

5、shell数组

shell数组定义:

 array_name=(var1 var2  var3  var4)

获取数组元素,下表从零开始:

 ${array_name[index]}
#@或*表示所有元素

赋值:

 array_name[index]=value

获取数组的长度:

 ${#array_name[@]}

 ${#array_name[*]}

删除数组元素:

 unset  array_name[index]

数组常用语法实例:

 #!/bin/sh
arr1=(data1 data2 data3 data4)
#赋值
arr1[]=data5
#获取第5个元素,下表从0开始
echo ${arr1[]} #输出data5
#获取数组长度
echo ${#arr1[@]} #输出5 #删除第一个元素
unset arr1[] echo ${#arr1[@]} #输出4

shell变量定义与数组-1的更多相关文章

  1. shell变量定义

    http://blog.csdn.net/longxibendi/article/details/6125075 set - 读写变量语法:set varName ?value?描述:返回变量varN ...

  2. shell 变量定义使用

    shell 中变量的几种类型: 1.局部变量:只在当前 shell 可用的变量, 2.环境变量:当前 shell 的子进程也可用的变量 3.shell 变量:一些由 shell 设置的特殊变量,如:$ ...

  3. shell 变量定义技巧总结

    可以多学习和模仿操作系统自带的/etc/init.d/functions函数库脚本的定义思路,多学习Linux系统脚本中的定义,有经验的读者最终应形成一套适合自己的规范和习惯. (1)变量名及变量内容 ...

  4. shell变量定义中的特殊符号

    今天要写一个shell语句来输出数据库的v$database的信息 定义bb为一个接收sql返回值的变量 需要注意的是: select * from v$database ;  语句 由于其中用到了$ ...

  5. shell变量,字符串,数组

    一.shell变量定义: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头: 中间不能有空格,可以使用下划线: 不能使用标点符号: 不能使用bash里的关键字. 变量使用: 使用一个定义过的 ...

  6. Shell变量之自定义变量、环境变量

    1:环境变量        环境变量可以帮我们达到很多功能-包括家目录的变换啊.提示字符的显示啊.运行文件搜寻的路径啊等等的那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中, 有 ...

  7. Shell 变量,Shell echo命令

    一.Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟 ...

  8. 二、Shell 变量

    Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的 ...

  9. shell 变量的高级用法

    变量删除和替换 案例:从头开始匹配,将符合最短的数据删除 (#) variable_1="I love you, Do you love me" echo $variable_1 ...

随机推荐

  1. 图解HTTP第三章

    HTTP 报文内的 HTTP信息 用于 HTTP 协议交互的信息被称为 HTTP 报文.HTTP 报文本身是由多行(用 CR+LF 作换行符)数据构成的字符串文本. HTTP 报文大致可以分为两类:请 ...

  2. linux sort排序命令的高级用法(按多个列值进行排列)

    http://www.jquerycn.cn/a_9076 在linux中,使用sort按行进行排序是很简单的.不过有时,生活总是爱抛给你一个一个的问题.如果使用sort按多个列值排列,同时使用tab ...

  3. 《Linux就该这么学》第十六天课程

    今天笔记有点少就不发了,分享一下第23章 使用OpenLDAP部署目录服务很实用 下面是DHCP动态管理地址,如需深入学习请前往 https://www.linuxprobe.com/chapter- ...

  4. post文件下载

    this.$http({ method: 'post', url: '/file/download', responseType: 'blob', data: JSON.stringify(this. ...

  5. golang打造基于mail的提醒服务

    初识golang 逻辑如下: 程序开启http服务器接收请求,且每隔20秒查询一次表auto_backup中flag为0的值,如果有查到且计划执行时间小于当前时间,则将表to_do的数据抓出来,通过邮 ...

  6. android-音量管理

    推荐简书夕月风: 前两个主要设计音频建设置流程. 一.https://www.jianshu.com/p/a48fc2c830da 二.https://www.jianshu.com/p/892761 ...

  7. 记一次bash脚本开发的经历

    现状描述与需求描述 最近梳理系统功能的时候发现现在每个月处理完数据之后,需要给别的系统传送批接口文件,接口文件的内容是来自于Oracle数据表中的数据.我每次都需要手工执行一下存储过程,让数据从正式表 ...

  8. 自由拖拽DIV实现

    最近在做的项目有个效果是要实现div随意拖拽改变大小,前端框架选择的是vue.js,UI用的是element,拖拽效果可以很简单的实现,但是在拖拽过程中发现会对其他元素实现全选效果,因此最后选择使用元 ...

  9. 《python语言程序设计》_第5章_循环

    #5.1_引言 程序1: 结果: 程序2: 结果: sum is 45 ##注意整个循环语句都要内缩进循环内部 ##ctrl+c中止一个无限循环运行 程序清单5-1: 结果: #5.2.1_实例研究: ...

  10. arp脚本

    1.什么是arp?arp可以解决什么问题? ARP:是地址解析协议 arp解决我们知道一个机器(主机或者路由器)的IP地址,需要找出其相应的硬件地址 2.编写ARP脚本,抓取对应主机的mac地址 1 ...