shell脚本

Shell脚本case语句

a 夏天 提交于 2020-03-15 07:19:10
case语句格式 case 变量 in PAT1) 执行语句 ;; PAT2) 执行语句 ;; *) 默认执行语句 ;; esac 使用示例: 编写一个shell脚本,通过提示用户输入信息,输出cpu,mem,disk的信息;#!/bin/bash #显示各种信息 #sky-whr cat << EOF 菜单 -------------------------- cpu)显示cpu信息 mem)显示内存信息 disk)显示硬盘信息 quit)退出 --------------------------- EOF while : do read -t 5 -p "请输入需要查看的信息:" a if [ -z $a ];then echo "请输入正确的参数" echo "例如cpu,mem,disk,quit" fi case $a in cpu) cat /proc/cpuinfo ;; mem) free -h ;; disk) fdisk -l ;; quit) break ;; esac done 来源: https://www.cnblogs.com/shy13138/p/11364748.html

Shell脚本出现$'\\r': command not found

寵の児 提交于 2020-03-15 04:30:16
Centos7下执行shell脚本报错如下 [root@ip-172-29-10-16 ~]# sh install_zabbix_agent.sh install_zabbix_agent.sh: line 2: $'\r': command not found install_zabbix_agent.sh: line 8: $'\r': command not found install_zabbix_agent.sh: line 9: $'\r': command not found install_zabbix_agent.sh: line 10: syntax error near unexpected token `$'{\r'' 'nstall_zabbix_agent.sh: line 10: `install_zabbix(){ 原因 这是因为脚本文件可能在window弄过,有window下的空行,把他转换成unix格式的就行 解决办法 yum install dos2unix 然后再执行这个脚本就可以了 来源: https://www.cnblogs.com/lemon-le/p/10552581.html

CentOS中环境变量和配置文件

假装没事ソ 提交于 2020-03-15 02:57:31
什么是环境变量 bash shell用一个叫做 环境变量(environment variable) 的特性来存储有关shell会话和工作环境的信息。即允许在内存中存储数据,使得在程序或shell中运行的脚本能够访问它们。 在bash shell中,环境变量分为两类: 全局变量 局部变量 全局环境变量 全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则只对创建它们的shell可见。 查看全局变量,可以使用 env 或 printenv 命令。 [root@dev ~]# env HOSTNAME=localhost TERM=linux SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=10.0.100.17 56344 22 SSH_TTY=/dev/pts/0 USER=root [root@dev ~]# [root@dev ~]# printenv HOSTNAME=localhost TERM=linux SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=10.0.100.17 56344 22 SSH_TTY=/dev/pts/0 USER=root [root@dev ~]# printenv TERM linux 使用环境变量,通过 $ +变量名。 [root@dev ~]#

linuc运维shell脚本基础知识

不问归期 提交于 2020-03-15 01:51:06
1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来; 2、查出用户UID最大值的用户名、UID及shell类型; 3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序; 4、编写脚本createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户id号等信息; 5、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等; [root@www ~]# vim ~/.vimrc 来源: 51CTO 作者: wx5e3117d9076d5 链接: https://blog.51cto.com/14671983/2478438

Linux shell必知必会

我的梦境 提交于 2020-03-14 20:42:44
我个人很喜欢使用 Linux 系统,虽然说 Windows 的图形化界面做的确实比 Linux 好,但是对 脚本 的支持太差了。一开始有点不习惯 命令 行操作,但是熟悉了之后反而发现移动鼠标点点点才是浪费时间的罪魁祸首。那么对于 Linux 命令 行,本文不是介绍某些命令的用法,而是说明一些简单却特别容易让人迷惑的细节问题。 1、标准输入和命令参数的区别。 2、在后台运行命令在退出终端后也全部退出了。 3、单引号和双引号表示字符串的区别。 4、有的命令和sudo一起用就 command not found。 一、标准输入和参数的区别 这个问题一定是最容易让人迷惑的,具体来说,就是搞不清什么时候用管道符|和文件重定向>,<,什么时候用变量$。 比如说,我现在有个自动连接宽带的 shell 脚本 connect.sh,存在我的家目录: $ where connect.sh /home/fdl/bin/connect.sh 如果我想删除这个脚本,而且想少敲几次键盘,应该怎么操作呢?我曾经这样尝试过: $ where connect.sh | rm 实际上,这样操作是错误的,正确的做法应该是这样的: $ rm $(where connect.sh) 前者试图将where的结果连接到rm的标准输入,后者试图将结果作为命令行参数传入。

转 shell awk 使用详解

此生再无相见时 提交于 2020-03-14 11:30:32
awk简介 awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows上实现,gawk, awk实现在linux上。awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供 了Bell实验室和GNU的一些扩展。下面就对awk进行介绍。 awk使用的基本格式: 1 2 3 # awk [options] 'script' file1 file2, ... # awk [options] 'PATTERN { action }' file1 file2, ..

Ansible-Playbook之初始化服务器

狂风中的少年 提交于 2020-03-14 11:26:26
批量初始化服务器 初始化步骤 配置ssh密钥认证 远程配置主机名 控制远程主机互相添加HOSTS解析 配置远程主机的yum源以及一些软件 时间同步配置 关闭selinux/iptables 修改sshd配置 配置ssh密钥认证 在主控节点的 /etc/ansible/hosts 配置节点 $ vim /etc/ansible/hosts [new] 192.168.56.12 192.168.56.13 在控制节点配置到受控节点的ssh认证方式 # 主控节点执行 $ ssh-keygen -t rsa -f ~/.ssh/id_rsa -N '' $ for host in 192.168.56.{11..12};do ssh-keyscan $host >> ~/.ssh/hnow_hosts 2> /dev/null sshpass -p '123456' ssh-copy-id root@$host &> /dev/null done 将上面的方案playbook化: --- - name: config ssh connection hosts: new gather_facts: false tasks: - name: configure ssh connection shell: | ssh-keyscan {{inventory_hostname}} >> ~/

Shell脚本常用unix命令

匆匆过客 提交于 2020-03-14 03:45:24
在shell脚本中可以使用三类命令: 1)Unix 命令:   虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。 常用命令语法及功能    echo "some text": 将文字内容打印在屏幕上   ls: 文件列表   wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数   cp sourcefile destfile: 文件拷贝   mv oldname newname : 重命名文件或移动文件   rm file: 删除文件    grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt   cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令   cat file.txt: 输出文件内容到标准输出设备(屏幕)上    file somefile: 得到文件类型    read var: 提示用户输入,并将输入赋值给变量   sort file.txt: 对file.txt文件中的行进行排序   uniq:

编写Shell脚本的最佳实践

为君一笑 提交于 2020-03-14 03:43:10
from http://kb.cnblogs.com/page/574767/ 前言   由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视。同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一。   考虑到上面的这些原因,我查阅了一些相关的文档,发现这些问题其实很多人都考虑过,而且也形成了一些不错的文章,但是还是有点零散。因此我就在这里把这些文章稍微整理了一下,作为以后我自己写脚本的技术规范。   代码风格规范   开头有“蛇棒”   所谓shebang其实就是在很多脚本的第一行出现的以”#!”开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样: #!/bin/bash   当然,解释器有很多种,除了bash之外,我们可以用下面的命令查看本机支持的解释器: $ cat /etc/shells #/etc/shells: valid login shells /bin/sh /bin/dash

《自拍教程43》adb命令_一键读取硬件配置

ε祈祈猫儿з 提交于 2020-03-13 14:55:46
Android系统测试过程中, 比如接口测试,需要用到设备的iccid, 或者uuid, 车载测试需要用到VIN号(车辆唯一标识号), 4G测试等需要设计IMEI号等设备配置字参数等, 我们还可以读取到设备的分辨率,emmc磁盘容量, cpu型号,内存大小等,这些硬件配置信息, 可以辅助我们做测试,如何读取到这些硬件信息呢? 准备阶段 adb shell getprop命令,可以获取到Android设备iccid, imei,emmc磁盘容量等 adb shell wm size 可以读取到分辨率 adb shell cat /proc/cpuinfo 可以读取到cpu相关的信息 adb shell cat /proc/meminfo 或adb shell free 可以读取到内存相关的信息 os.popen()函数可以快速调用以上命令并获取输出字符串。 python的re正则表达式可以轻易地进行数据匹配,查找等强大的字符串处理 getprop命令介绍 getprop命令是android自带的动态获取系统属性参数, 包括了软件,硬件属性参数等,其有好几种执行方式,包括: 用法一: getprop 获取全部系统属性参数, 比如魅族Note5的 getprop我们保存为txt文件(可点击下载) 用法二: getprop 属性名,可获取某个指定属性的具体参数信息,比如: 相对应的