【shell】read】的更多相关文章

1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.格式grep [options] 3.主要参数[options]主要参数:-c:只输出匹配行的总数.-i:不区分大 小写(只适用于单字符).[常用]-l:查询多文件时只输出包含匹配字符的文件名.-n:显示匹配行及 行号.-s:不显示不存在或无匹配文本的错…
问题描述: [解答] [root@A04-Test- scripts]# more menu.sh #!/bin/bash echo "1.[install lamp]" echo "2.[install lnmp]" echo "3.[exit]" read -p "pls input the num you want: " num case $num in ) if [ -f "/server/scripts/l…
现有一个需求,需要定时删除积累过久的目录,并且部分目录不可删除.在此,我们分析了一下该父目录的命名结构:非连续性数字命名,部分目录中包含a.txt文件.如下图所示: 在此,我们对此可作如下操作,获取该父目录下最大(max)以及最小(min)目录的名字,增加一个可变deduce值,需要删除的目录区间范围则为:[min,max-deduce),剩余留下的目录区间范围则为:[max-deduce,max]. 实现的内容有:1.磁盘空间低于某值批量删除文件目录 2.保留最新的部分目录 3.删除的目录中包…
1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚本的内容.每一个合格的Linux系统管理员或运维工程师,都需要熟练的编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础. 1.2 学好Shell编程所需的基础知…
文件名是有[基本名]与[扩展名]两部分构成 1.借助[%]操作符从文件名中提取基本名部分 Linux:/qinys # file_name='get_name.tar.gz'Linux:/qinys # name=${file_name%.*}Linux:/qinys # echo "The File name is :"$nameThe File name is :get_name.tar 从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:get_n…
(1)/etc/profile   登录时,会执行.全局(公有)配置,不管是哪个用户,登录时都会读取该文件.(2)/ect/bashrc   Ubuntu没有此文件,与之对应的是/ect/bash.bashrcbash.bashrc 是交互式shell的初始化文件.  (3)~/.profile  某个用户读取的配置.若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~ /.bash_login,若前两者不存在,读取~ /.profile.另外,图形模式登…
shell变量可分为两类:局部变量和环境变量.局部变量只在创建它们的shell中可用.而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用shell变量.变量名必须以字母或下划线字符开头.其余的字符可以是字母.数字(0~9)或下划线字符. 2 环境变量环境变量的定义方法如下:var=valueexport var 3.查看变量 set:查看所有变量 env:查看环境变量 unset:删除变量 PATH="$PATH":路径 4.数值…
:举例[root@andon ~]# date;dd if=/dev/zero of=/home/1 bs=1k count=10240;date ##统计dd命令消耗时间,其中/dev/zero为空文件 Tue Jun 14 15:15:02 CST 2016 10240+0 records in 10240+0 records out 10485760 bytes (10 MB) copied, 0.0224696 s, 467 MB/s Tue Jun 14 15:15:02 CST 20…
if [ condition ];then action fi 运算符 描述 示例 文件比较运算符 -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ] -s filename 如果 filename存在且非空,则为真 [ -s /tmp/letter ] -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ] -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin…
1.基本概念  a.I/O重定向通常与 FD有关,shell的FD通常为10个,即 0-9:  b.常用FD有3个,为0(stdin,标准输入).1(stdout,标准输出).2(stderr,标准错误输出),默认与keyboard.monitor.monitor有关:  c.用 < 来改变读进的数据信道(stdin),使之从指定的档案读进:  d.用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案:  e.0 是 < 的默认值,因此 < 与 0&l…
参考shell数组的部分操作用法,实现了构造和遍历二维数组的一种方式,具体如下: #数组元素以空格分割 sites=("www.a.com www.b.com www.c.com www.d.com" "www.e.cn www.f.cn") n_sites=${#sites[*]} #获取一维sites的数组长度 for ((i=0;i<$n_sites;i++)); do inner_sites=(${sites[$i]}) #将一维sites字符串赋值到…
后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了. 一个用于分区的shell脚本 1 #!/bin/bash #指定脚本解释器路径 2 echo "initial a disk--" 3 echo -e "\033[31mWarning!:\033[0m" #提醒用户危险操作 4 5 fdisk -l 2> /dev/null | grep -o "disk /dev/[sh]d[a-z]" #…
第一次写Shell脚本,没经验,是直接写呢,还是要走流程( ̄▽ ̄)~* ----------------------------------------------------------------------- 总的来说分三步,下面跟我一起做 ----------------------------------------------------------------------- 第一步:先创建一个文件 touch public.sh 第二步:编写脚本 #!/bin/bash echo…
首先解释一下什么叫“按域去除重复行”: 有的时候我们需要去除的重复行并不是整行都重复,两行的其中一列的元素相同我们有的时候就需要认定这两行重复,因此有了今天的内容. 去除重复行shell有一个原生命令但是不太好使应为这个命令找的重复行是上下文的重复行,也就是说需要提前排序,这样就增加了不必要的麻烦,我们在这里选择使用awk工具进行重复行的去除. 命令如下: awk '!array[$0]++' Filename 解释一下这行代码,由于awk工作方式的特殊性,也就是按行读入按行输出,中间引号内的语…
单行注释 '# ' # echo "hello" 多行注释 方法1 : << ! 这是注释1 这是注释2 这是注释3 ! 方法2 :' 这是注释1 这是注释2 这是注释3 ' 方法3 if false; then 这是注释1 这是注释2 这是注释3 fi 方法4 : << 字符 # 这里的字符可以是数字或者是字符都可以 这是注释1 这是注释2 这是注释3 字符 # 这里的字符要和一开始的一样 方法5 ((0))&&{ 这是注释1 这是注释2 这是…
场景 按照一定时间规律运行Tcpdump 思路 编程思路细化思考 查看文件个数 file_count_results=`ls -al "C:\\Users\\Windows32\\Desktop\\test" | grep ^- | wc -l` 显示文件大小 $ du -h --max-depth=0 2.1G . $ du -bs 2177623726 . 这样的话,在SHELL里把文件夹大小做为命令输出赋值到一个变量里,但是用awk命令取第一列 CHECK=$(du -bs /d…
shell虽然比batch顺眼点儿,但还是老话,入门容易,精通难. 1.场景一是这样的,现有字符串的内容 name: tiger; age:18; location:china; 需求:提取每个属性的值,如age的值为18. 定义了一个函数如下: function getValueOf(){ val=$( | grep -oP "(?<=$2)[^;]+" | sed "s/,//g" | sed 's/ //g'| tr -cd "[0-9]&qu…
Find命令的一般形式为: find pathname -options [-print -exec -ok] 让我们来看看该命令的参数: pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录. -print: find命令将匹配的文件输出到标准输出. -exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' {} ;,注意{}和:之间的空格. -ok: 和-exec的作用相同,只不过以一种更为安全的模式…
1.向脚本传递参数 #!/bin/bash #功能:打印文件名与输入参数 #作者:OLIVER echo $0 #打印文件名 echo $1 #打印输入参数 执行结果: 2.在脚本中使用参数 #!/bin/bash #功能:输入参数的使用 #作者:OLIVER cp $1 $2 #根据输入参数复制文件到指定位置 执行结果: 3.函数的使用 #!/bin/bash #功能:函数的使用 #作者:OLIVER run(){ echo "Hell world" } run 运行结果: 4.连接…
圆括号 1.单圆括号() ①命令组,括号中的命令将会开启一个子shell独立运行:括号中以分号连接,最后一个命令不需要;各命令和括号无需空格 Linux:/qins # (var=1;echo $var) 1 ②命令替换,等同于`cmd`,shell将会执行$(cmd)中的命令,将其输出放到原来的命令中 Linux:/qins # echo $(date +%Y-%m-%d) 2019-01-17 ③定义数组 Linux:/qins # a=(1 2 3) 2.双圆括号(()) ①整数扩展.这种…
使用db2的时候,有时候需要对表数据进行删除,防止数据太多,造成数据库空间满了 以下是一个定时删除表tmp,tm1中id为1的数据的脚本 #!/bin/sh ##---------------------------------------------------------- ##--功能说明:定时删除数据 ##--开发公司:XXX ##--作者:qys ##--时间:2019-01-02 ##--输入参数:无 ##--版本维护 ## 版本: 更新日期: 更改人: 更改说明: ## -----…
第一章:小试牛刀 #变量赋值 var = value不同于var=value 把var=value写成var = value是一个常见的错误 前者是赋值操作,后者是相等操作 #let命令可以直接执行基本的算数操作 #bc bc是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项 借助bc可以执行浮点数运算并应用一些高级函数 #重定向 >和>>并不相同,尽管这两个操作都可以将文本重定向到文件 前者先清空文件,后者会将内容追加到现有文件的末尾 #位桶(黑洞) /dev/null是一个…
通过前几篇文章的学习,我们学会了shell的基本语法.在linux的实际操作中,我们经常看到命令会有很多参数,例如:ls -al 等等,那么这个参数是怎么处理的呢? 接下来我们就来看看shell脚本对于用户输入参数的处理. 命令行参数处理 根据参数位置获取参数 bash shell可根据参数位置获取参数.通过 $1 到 $9 获取第1到第9个的命令行参数.$0为shell名.如果参数超过9个,那么就只能通过${}来获取了, 例如获取第10个参数,那么可以写为${10}. 示例一: #!/bin/…
总结一下在写shell脚本时的常见注意事项: 1.shell脚本中的命令最好用命令的全路径,如果不知道全路径可以用which cmd查找命令的全路径. 2.shell脚本中定义环境变量用export xxx=/dir1/dir2..... 3.shell脚本中取变量所以变量前都需加$,或者最好是${变量} 4.掌握常见的if.for.case语法的使用方法 5.shell脚本中最好写清楚注释 6. shell脚本中善于使用函数 7.用 $? 来判断上一个shell命令的执行结果,返回值是0代表正…
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. return后跟数值n(0-255) 例1:一个简单的例子: #!/bin/bash f…
一.小括号,圆括号() 1.单小括号 ()    ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格.    ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh.     ③用于初始化数组.如:array=(a b c d)  …
最近帮着老大做一些服务器上的日志处理任务,小弟之前只是稍微会用点Linux,但是一些高级的命令基本不会,经过一番折腾,总结了几个自认为比较有用的命令,之后学到更多的再来补充. 一.文本处理:awk 二.定时任务:crontab crontab -e : 编辑定时任务列表,里面其实就是个文本,一行代表一个定时任务,格式为:* * * * * command 三.shell常用流程控制语法:if/for/while for: 普通用法:记得双括号,以done为结束符 ;i<;i++ )) do ==…
linux中shell变量$#,$@,$0,$1,$2的含义解释   摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"…
1.linux组成kernel.shell.工具程序有sh.bash 一个例子 !#/bin/bash echo '' 执行之前chmod +x 执行./ 2.一个小窍门 cp /dev/null /var/log/apache2/access.log 利用/dev/null来晴空apache2中的日志文件 注释:把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚…
tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩.-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?-v :压缩的过程中显示文件!这个常用,但不建议用在背景…