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的更多相关文章
-
shell变量定义
http://blog.csdn.net/longxibendi/article/details/6125075 set - 读写变量语法:set varName ?value?描述:返回变量varN ...
-
shell 变量定义使用
shell 中变量的几种类型: 1.局部变量:只在当前 shell 可用的变量, 2.环境变量:当前 shell 的子进程也可用的变量 3.shell 变量:一些由 shell 设置的特殊变量,如:$ ...
-
shell 变量定义技巧总结
可以多学习和模仿操作系统自带的/etc/init.d/functions函数库脚本的定义思路,多学习Linux系统脚本中的定义,有经验的读者最终应形成一套适合自己的规范和习惯. (1)变量名及变量内容 ...
-
shell变量定义中的特殊符号
今天要写一个shell语句来输出数据库的v$database的信息 定义bb为一个接收sql返回值的变量 需要注意的是: select * from v$database ; 语句 由于其中用到了$ ...
-
shell变量,字符串,数组
一.shell变量定义: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头: 中间不能有空格,可以使用下划线: 不能使用标点符号: 不能使用bash里的关键字. 变量使用: 使用一个定义过的 ...
-
Shell变量之自定义变量、环境变量
1:环境变量 环境变量可以帮我们达到很多功能-包括家目录的变换啊.提示字符的显示啊.运行文件搜寻的路径啊等等的那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中, 有 ...
-
Shell 变量,Shell echo命令
一.Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟 ...
-
二、Shell 变量
Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的 ...
-
shell 变量的高级用法
变量删除和替换 案例:从头开始匹配,将符合最短的数据删除 (#) variable_1="I love you, Do you love me" echo $variable_1 ...
随机推荐
-
setCapture、releasCapture 浅析
1. setCapture 简介 setCapture可以将鼠标事件锁定在指定的元素上,当元素捕获了鼠标事件后,该事件只能作用在当前元素上. 以下情况会导致事件锁定失败: 当窗口失去焦点时,锁定的事件 ...
-
实现gridview空白处的点击事件
今天做了一个girdview,要求长按item出现删除按钮,点击空白处取消,长按出现按钮可以,但是点击空白处有问题,如果点击到书籍的空白处 可以用适配器的布局点击事件处理,但是空白区域不是item,不 ...
-
ZooKeeper典型应用场景一览
原文地址:http://jm-blog.aliapp.com/?p=1232 ZooKeeper典型应用场景一览 数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据 ...
-
转:使用Nlog记录日志到数据库
原文:http://www.cnblogs.com/Gyoung/archive/2012/10/18/2729613.html Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台, ...
-
第二章 下山遇虎(@helper)
@helper方法定义 使用@helper关键字可以定义一个方法,这样就可以在页面中调 用这个方法了,和C#中的方法一样.在页面中定义的方法可以访问ViewBag,HttpContext等等页面的属性 ...
-
UITableView:下拉刷新和上拉加载更多
[转载请注明出处] 本文将说明让UIScrollView支持"下拉刷新"和"上拉加载更多"的实现机制,并实现一个可用的tableView子类,以下主要以&quo ...
-
Hongwei Xi
Hongwei Xi Hongwei Xi Hongwei Xi's Curriculum Vita Hongwei Xi
-
WPF笔记1 用VS2015创建WPF程序
使用WPF创建第一个应用程序.实现功能如下: 单击"Red"按钮,文本显示红色:单击"Black"按钮,文本显示黑色:单击"Back"按钮, ...
-
kernel笔记——定时器与时间管理
内核中时钟主要完成以下作用: 记录系统运行时间 完成时间相关的统计功能,如cpu占用率等 定时功能,设定某个进程一段时间后完成某项任务 为实现以上功能,硬件以及内核提供了不同类型的时钟. RTC 实时 ...
-
fwrite()中参数含义——size和count经常用搞反
函数原型:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); 注意:这个函数以二进制形式对文件进 ...