linux中的shell编程----基础
1,运行shell脚本有两种办法一般有两种:
先给可执行权限,再进入文件所在的目录,输入:./name.sh;
运行解释器再执行脚本:/bin/sh name.sh,这种情况下,脚本中可以没有#!/bin/bash的情况。
2,shell变量
变量命名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字
开头。
- 变量名和等号,变量名中间也不能有空格,可以使用下划线(_)。
- 不能使用标点符号。
- 不能使用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编程----基础的更多相关文章
- Linux学习之Shell编程基础
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...
- 基于Linux系统的Shell编程-基础篇
1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@C ...
- Linux之19——Shell编程基础详解
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
- Linux学习之二十一-shell编程基础
Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...
- Linux中的shell
shell的含义: 首先shell的英文含义是"壳": 它是相对于内核来说的,因为它是建议在核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核. Li ...
- Linux基础与Linux下C语言编程基础
Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...
- Linux中的shell到底是什么?
(曾经有一段充足的时间放在我面前,可以学linux,而我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此.) 最近,要将项目代码部署到linux环境下运行,但是对linux毫无基础,之前 ...
- Linux中的shell到底是什么
(引自:https://zhidao.baidu.com/question/557066905.html) [一] shell的含义: 首先shell的英文含义是"壳": 它是相对 ...
- 【转】Shell编程基础篇-上
[转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应 ...
随机推荐
- Doing Homework HDU - 1074 (状压dp)
Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every ...
- C# BackgroundWorker使用总结
查询了一下MSDN文档,其中微软就BackgroundWorker类的功能有这么一个描述(英文的,根据个人理解翻译):BackgroundWorker类允许您在单独的线程上执行某个可能导致用户界面(U ...
- CodeForces621E 快速矩阵幂优化dp
有时些候在用快速矩阵幂优化dp的时候,它的矩阵乘法是不那么容易被具体为题目背景的意思的,大多数时候难以理解矩阵之间相乘的实际意义,正如有时候我们不知道现在在做手头这些事情的意义,但倘若是因一个目标而去 ...
- Python继承扩展内置类
继承最有趣的应用是给内置类添加功能,在之前的Contact类中,我们将联系人添加到所有联系人的列表里,如果想通过名字来搜索,那么就可以在Contact类添加一个方法用于搜索,但是这种方法实际上属于列表 ...
- Tensorflow object detection API 搭建物体识别模型(二)
二.数据准备 1)下载图片 图片来源于ImageNet中的鲤鱼分类,下载地址:https://pan.baidu.com/s/1Ry0ywIXVInGxeHi3uu608g 提取码: wib3 在桌面 ...
- namenode format
https://community.hortonworks.com/content/supportkb/48981/how-to-recover-namenode-ha-when-one-accide ...
- MongoDB硬件及开发标准规范
大数据平台部 运维研发组 MongoDB硬件及开发标准规范 说明: 无特殊情况,均以此文档为参考文件搭建,如有特殊情况,需与运维研发组和开发组商议后进行更改. MongoD ...
- Hadoop记录-yarn ResourceManager Active频繁易主问题排查(转载)
一.故障现象 两个节点的ResourceManger频繁在active和standby角色中切换.不断有active易主的告警发出 许多任务的状态没能成功更新,导致一些任务状态卡在NEW_SAVING ...
- PHP7 学习笔记(十六)Yaconf 一个高性能的配置管理扩展
鸟哥博客原文:Yaconf – 一个高性能的配置管理扩展 什么是yaconf ? 它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起.它在PHP启动的时候, 处理所有 ...
- Docker 从入门到放弃(四)Docker+Jenkins_自动化持续集成
Windows 查看密码 $ cat /var/jenkins_home/secrets/initialAdminPassword 14e14c414f41481aa5955753d3f31f9f 自 ...