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 ...
随机推荐
- open()函数文件操作
open函数,该函数用于文件处理 操作文件时,一般需要经历如下步骤: (1)打开文件 (2)操作文件 一.打开文件 文件句柄 = open("文件路径","模式& ...
- 开源IDS系列--解决barnyard2 停止运行 libmysqlclient.so.16.0.0
现象: barnyard2运行一段时间后,会自行停止,未在/var/log/barnyard2或/var/log/suricata中发现相关日志. 排查: 在/var/log/message中存在以下 ...
- 服务管理(svcadm)
svcs 正在运行的服务 svcs -a 正在运行和没运行的服务 svcs -D 此进程依赖的进程 svcs -D sendmail svcs -d 依赖于此进程的进程 svcs - ...
- Xpath,XQuery,DTD
一.Xpath XPath 是一门在 XML 文档中查找信息的语言;XPath 是 XSLT 中的主要元素.XPath是W3C标准.1.七种类型节点:元素.属性.文本.命名空间.处理指令.注释.文档节 ...
- Domato学习
A DOM fuzzer 转:https://github.com/google/domato Written and maintained by Ivan Fratric, ifratric@goo ...
- 《Android虚拟机》----虚拟机概述
No1: 虚拟机是指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离的环境中的完整计算机系统. No2: Java虚拟机由如下五个部分组成:一组指令集.一组寄存器.一个栈.一个无用单元收集堆. ...
- CodeForces 805A Fake NP
直觉. 一段区间中,肯定是$2$的倍数最多,因为区间长度除以$2$得到的数字最大.但只有$1$个数字的时候需要特判. #include <cstdio> #include <cmat ...
- Python数据类型-列表(list)增删改查
1.添加元素 添加单个元素:使用append(object)函数可以为列表添加单个元素,参数object为对象:也就是说所有Python的对象都可以添加到列表中. 添加多个元素(合并列表):使用ext ...
- Java常用工具类之自定义访问对象
package com.wazn.learn.util; import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象 ...
- luogu P2107 小Z的AK计划
最近复习了一下堆,于是去luogu上找一些简单题写一写 贪心的想,小z不会到一半以后回头去Ak,因为这样从时间上想肯定是不优的,他可以早在之间经过时就AK所以我们可以将所有机房按照横坐标排序可以想到的 ...