shell基础操作
一、字符串
字符串是shell编程中最常用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。
单引号
name='xiaoxi'
单引号的限制:
单引号里的任何字符都会原样输出,单引号中的变量是无效的。
单引号字串中不能出现单引号(对单引号使用转义符也不行)。
双引号
name="xiaoxi"
uname="${name}\"test"
双引号的优点:
双引号里可以包含变量
双引号里可以出现转义字符
不加引号
name=xiaoxi
uname=${name}\"test
不加引号和双引号效果类似,只是开头和结尾没有双引号。
拼接字符串
name='xiaoxi'
uname="${name}test"
uname2="$name$uname"
echo $name $uname $uname2
输出:
[root@xiaoxitest ~]# ./test.sh
xiaoxi xiaoxitest xiaoxixiaoxitest
获取字符串长度
name='xiaoxi'
echo ${#name}
输出:
[root@xiaoxitest ~]# ./test.sh
6
提取字符串
name='xiaoxitest'
echo ${name:0:6}
输出:
[root@xiaoxitest ~]# ./test.sh
xiaoxi
查找字符串
name='xiaoxitest'
echo `expr index ${name} xiaoxi`
输出:
[root@xiaoxitest ~]# ./test.sh
1 #1表示存在,0表示不存在
二、转义字符
name='xiaoxitest'
echo -e "xiaoxi\ntest"
输出:
[root@xiaoxitest ~]# ./test.sh
xiaoxi
test
这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:
xiaoxi\ntest
其它转义字符也可以用于echo中:

三、表达式
将命令结果存储在变量中
name=`who | awk {'print $1'}` #注意是反引号,位于Esc键下方
count=$(who | wc -l)
echo -e "The user login count: ${count}\n${name}"
输出:
[root@xiaoxitest ~]# ./test.sh
The user login count: 2
root
xyp
四、数组定义
bash仅支持一维数组,并且没有限制数组的大小。用括号表示数组,数组元素用“空格”符号或换行分隔。
例1:
name=(aa bb cc)
例2:
name=(
aa
bb
cc
)
也可单独定义数组的各个元素
name[0]=aa
name[1]=bb
name[3]=cc
五、数组读写
例:
#!/bin/bash
sar=(aa bb cc)
echo sar:${sar[*]}
name[]=aa
name[]=bb
name[]=cc
uname=(${name[]} dd)
echo "name:${name[1]} uname:${uname[*]}"
输出:
[root@xiaoxitest ~]# ./test.sh
sar:aa bb cc
name:bb uname:bb dd
使用@ 或 * 可以获取数组中的所有元素,例如:
${name[*]}
${name[@]}
shell基础操作的更多相关文章
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- bash shell学习-shell基础 (笔记)
When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时 ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- gulp基础操作实践
按照gulp中文文档对gulp基础操作的一些实践练习,记录以防忘掉. 一,选择并输出文件:gulp.src(globs[,options]) eg:gulp.src('src/less/index.l ...
- 【mongodb系统学习之八】mongodb shell常用操作
八.mongodb shell常用基础操作(每个语句后可以加分号,也可以不加,看情况定(有的工具中可以不加),最好是加): 1).进入shell操作界面:mongo,上边已有演示: 2).查看当前使 ...
- 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
. : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...
- Windows7系统基础操作
Windows7系统基础操作 操作系统是人机交互的时候桥梁,一种计算机软件,软件分为:系统软件+应用软件 区别是:系统软件是可以直接安装在硬件上的计算机由硬件和软件两部分组成 操作电脑核心是操作电脑的 ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Linux基础学习(10)--Shell基础
第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...
随机推荐
- Linux进程后台执行nohup(OpenTSDB后台运行方法)
1.问题描述 OpenTSDB执行./tsdb tsd启动之后,占有控制台执行并且Ctrl+C后就退出了,关闭控制台同样会退出. 2.解决方法(在/opt/module/opentsdb-2.3.1/ ...
- cell_phone_network(树形dp求最小支配集)
Cell Phone Network Farmer John has decided to give each of his cows a cell phone in hopes to encoura ...
- windows环境下搭建mysql主从
参考 windows环境下mysql主从配置 1. 环境 参数 说明 主库所在的操作系统 win7 主库的版本 mysql-5.6.46-winx64 主库的ip地址 127.0.0.1 主库的端口 ...
- javaweb:关于HttpServletResponse介绍 (转)
出处: https://www.cnblogs.com/xdp-gacl/p/3789624.html Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request ...
- DAX/PowerBI系列 - 累计总计(Cumulative Total, Running Total)
DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 2019/08/08 更新:在可视化数据的时候,一定要选择日期维度的日期列 ...
- node.js中使用imagemagick进行图片裁剪压缩
node.js中使用imagemagick进行图片裁剪压缩 安装imagemagick sudo apt-get install imagemagick or wget http://www.imag ...
- 苹果浏览器和ios中,时间字符串转换问题
背景:在开发PC端项目和小程序时,遇到过一个时间字符串转化问题,在苹果浏览器和ios微信客户端里,"2018-10-15 18:20" 以 字符"-"拼接的时间 ...
- Laravel 向公共模板赋值
开发过程中许多时候都会向公共模板赋值,比如顶部导航栏,页面底部等等,不可能在每个控制器中都赋值一遍. Laravel 中解决办法如下:修改 App\Providers\AppServiceProvid ...
- pycharm使用已经配置好的virtualenv环境
前面已经介绍过基本的virtualenv使用方法,如想要了解的同学可以跳转https://www.cnblogs.com/weilijie/p/10964872.html 下面进入正题,我使用的是py ...
- PAT Basic 1047 编程团体赛 (20 分)
编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...