Shell编程(脚本)的经常使用命令和语句
- 參数个数:
$#
- 參数值:
exit
echo命令:
- 换行:
echo
- 输出后不换行:
- 输出后不换行,并把光标移到最左(以便下次输出覆盖当前行)
-ne "$i\r"
- 利用转义符号输出双引號:
echo "欢迎使用\"正式server\"部署工具。"
- 输出中带变量:
- 输出带转义符的字符串:
- 输出到文件
printf命令:
- 输出一个小数点后两位的数,并换行:
- 输出一个指定宽度的字符串:
- 定义:
profile="production"
- 使用:
echo $profile
- 变量拼接:
- 定义:
servers=("192.168.0.31" "192.168.0.39")
- 获得整个数组:
- 获得数组元素个数:
- 加:x=$(expr "$a" + "$b")
- 减:x=$(($a - $b))
- 乘:x=$(expr $a \* $b)
- 除:x= $(expr $a / $b)
if 语句(条件推断相同适用于while语句和for语句):
- 推断一个变量(project)是否非空:
- 推断不等于:
- 布尔值推断:
- 字符串推断:
]
- 正則表達式推断
- 推断文件是否存在:
- 推断文件夹是否存在:
- 推断一个文件名称(字符串)的后缀
- 最简单的使用方法:读取用户输入到变量yes_or_no
read yes_or_no
- 提示用户输入y或n
select 语句(提示用户从列表中选择一个):
- 改动默认提示语(默认值是"#?"):
PS3="请选择一个项目:"
- 提示用户从数组中选择一个值:
case 语句:
;;
while 语句:
- 配合正則表達式推断使用:
- 用“...”做进度条
- 遍历:
调用其它程序:
- 使用``,并获得输出结果:
- 使用$()。并获得输出结果:
- 无声地调用其它程序(不输出结果,即把结果输出到一个null设备中)
awk(用来对字符串进行切片处理,一般配合grep使用):
- 获得以空格分隔的第四个字符串:
- 获得以特殊分隔符("/")分隔的第一个字符串
- print NF} 和 {print $NF}
前者是输出了域个数,后者是输出最后一个字段的内容
如:~# echo $PWD | awk -F/ '{print $NF}'
- 获取全部端口号为 $port 的进程,并杀掉
#!/bin/sh
seconds_left=15
echo "请等待${seconds_left}秒……"
while [ $seconds_left -gt 0 ];do
echo -n $seconds_left
sleep 1
seconds_left=$(($seconds_left - 1))
echo -ne "\r \r" #清除本行文字
done
echo "done!"
svn checkout $svn_dir while [ ! $? -eq 0 ];do
echo "重试……"
svn checkout $svn_dir
done; echo "done!"
Shell编程(脚本)的经常使用命令和语句的更多相关文章
- Shell编程——脚本编写思路与过程
Linux系统Shell编程——脚本编写思路与过程 “ 前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也会经常用到,因此如何写这个脚本?它的思路在 ...
- shell编程:定义简单标准命令集
shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...
- Shell编程 | 脚本参数与交互及常见问题
在执行一个脚本程序时,会经常需要向脚本传递一些参数,并根据输入的参数值生成相应的数据或执行特定的逻辑. 向脚本传递参数 执行Shell脚本时可以带有参数,在Shell脚本中有变量与之对应进行引用.这类 ...
- shell编程基础(七): 处理文件命令sed与awk
一.sed(以行为单位处理文件) sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑 ...
- shell编程必须要掌握的命令-xargs
一,说xargs命令前,说一下什么是shell编程 什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情.纯属个人理解,哈哈.不管是交互式的shell,还是非交互的shel ...
- Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)
一.概述 在上一篇里讲到了shell脚本,shell按照命令在脚本中出现的顺序依次进行处理,对于顺序操作已经足够了,但许多程序要求对shell脚本中的命令加入一些逻辑流程控制,这样的命令通常叫做 结构 ...
- linux shell编程学习笔记(二) --- grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- Linux Shell编程(21)——复杂命令
更高级的用户命令find-exec COMMAND \;在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell ...
- Shell 编程-常见的文件处理命令
touch 命令 touch命令用于创建空文件,例如有时应用程序希望在它们写入数据之前,某个日志文件就已经存在.这时可用touch命令创建一个空文件:touch test1:touch命令还可以用来改 ...
- 3.shell编程-文件查找之find命令
3.1.语法格式 find [路劲][选项][操作] 选项参数对照表 3.2.-name 查找/etc/目录下以.conf结尾的文件 find /etc/ -name "*.conf&quo ...
随机推荐
- 小甲鱼C++笔记(下)25-48
二十五 二十六 二十七 重载 运算符重载 1. 作为成员函数 #include <iostream> using namespace std; class Add { private ...
- Node JVM
Yaroslav Gaponov发布到Github的一个开源项目.用纯Node.js写的JVM.具体的实例和编译.运行过程,请直接看Node JVM在GitHub的主页. GitHub的主页:http ...
- bzoj 1115 转换+阶梯博弈
思路:我打了半天的表找规律.... 我们将每两个数的差值看成一堆堆石子,那么题目实际上就变为了 从当前堆可以拿出一些石子放到下一堆里去,就变成了一个阶梯博弈... #include<bits/ ...
- 牛客网 牛客小白月赛12 B.华华教月月做数学-A^B mod P-快速幂+快速乘
链接:https://ac.nowcoder.com/acm/contest/392/B来源:牛客网 华华教月月做数学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- python中if和elif的区别
多个if语句是每次单独判断 比如: 例子一: a = 5 if a < 6: #条件1 print(1) if a < 7: #条件2 print(2) else: print(3) 条件 ...
- Scrapy学习篇(三)之创建项目
创建项目 创建项目是爬取内容的第一步,之前已经讲过,Scrapy通过scrapy startproject <project_name>命令来在当前目录下创建一个新的项目. 下面我们创建一 ...
- MongoDB——环境搭建
项目中需要将一些读多改少的数据存入到 MongoDB 数据库中来提高效率,于是简单学习一些MongoDB数据库的知识,来进行应对,也是对自己知识盲区进行补充.本文主要学习介绍MongoDB数据库在Li ...
- 【BZOJ 2437】 2437: [Noi2011]兔兔与蛋蛋 (博弈+二分图匹配**)
未经博主同意不得转载 2437: [Noi2011]兔兔与蛋蛋 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 693 Solved: 442 Des ...
- loj2576 「TJOI2018」str
link 题意: 给一个模板串s和n个模式串,每个模式串有$a_i$种可取的串.现在要将n个模式串每个任取一种它可取的串,连接起来,记为串t,那么这种连接方式对答案的贡献为t在s中出现的次数.问所有连 ...
- 20162327WJH四则运算第二周总结
学号 20162327 <程序设计与数据结构>四则运算第二次实验报告 1.需求分析 1.本周我们进行了四则运算的后续完善,因为学习的比较欠缺,所以我负责比较简单的部分,就是只包含一个运算符 ...