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 ...
随机推荐
- 翻译:MLAPP(2.1节 概率概述)
笔者:尝试翻译MLAPP(Machine Learning: a Probabilistic Perspective)一书,供机器学习的学者参考,如有错误理解之处请指出,不胜感激!(如需转载,请联系本 ...
- fastdfs5.x Java客户端简单例子
下载源码, 使用maven编译并安装 https://github.com/happyfish100/fastdfs-client-java.git 新建maven工程,引入fastdfs-clien ...
- jquery datatable的详细用法
1,首先需要引用下面两个文件 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css ...
- LR 报错误: C interpreter run time error: Error -- Unresolved symbol : vuser_end解决方法
Action.c(33): Error: C interpreter run time error: Action.c (33): Error -- Unresolved symbol : vuse ...
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) E - Goods transportation 最大流转最小割转dp
E - Goods transportation 思路:这个最大流-> 最小割->dp好巧妙哦. #include<bits/stdc++.h> #define LL long ...
- Scrapy 笔记(二)
一个scrapy爬虫知乎项目的笔记 1.通过命令创建项目 scrapy startproject zhihucd zhihuscrapy genspider zhihu www.zhihu.com(临 ...
- Python并发编程-生产消费模型
生产消费模型初步 #产生两个子进程,Queue可以在子进程之间传递消息 from multiprocessing import Queue,Process import random import t ...
- java_方法
方法 1.1方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可采用坐公 ...
- SpringMVC框架 注解 (转)
原文地址:http://www.cnblogs.com/yjq520/p/6734422.html 1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个Spr ...
- here with you
Here With You - Asher Book To all my friends对我所有好友来讲The night is young夜未央The music's loud乐未殇They pla ...