#!/bin/bash c= ] do echo "请输入第一个数" read a echo "请输入第二个数" read b ]* ]] && [[ ${a} != *[!]* ]] && [ -n "${a}" ] && [ -n "${b}" ] ; then echo " " echo " " echo "和为:"…
目录 算术运算 赋值运算 逻辑运算 短路运算和异或 条件测试 数值测试 字符串测试 文件及其属性测试 存在性测试 存在性及类别测试 文件权限测试 文件特殊权限测试 文件大小测试 文件是否打开 双目测试 组合测试条件 扩展 read命令 配置文件相关 Bash退出任务 关于$-变量 算术运算 Bash中我们可以进行算术运算,包括:+.-.*./.%.**,分别是加,减,乘,除,取余,乘方.我们有六种方式,实现上面的运算: (1) let var=算术表达式 (2) var=$[算术表达式] (3)…
命令行参数 命令行参数:允许在运行脚本时向命令行添加数据值 如:$ ./addem 10 30 读取参数 bash shell会将一些称为位置参数的特殊变量分配给命令行输入的所有参数,甚至包括shell执行的程序的名字 位置参数变量是标准的数字 $0:程序名 $1:第一个参数 2:第二个参数,以此类推,直到第9个参数9 $cat test #!/bin/bash total=$[ $1 * $2 ] echo The total value is $total. $./test 2 5 The…
shell中有时我们需要交互,但是呢我们又不想每次从stdin输入,想让其自动化,这时我们就要使shell交互输入自动化了. 1    利用重定向     重定向的方法应该是最简单的 例: 以下的test.sh是要求我们从stdin中分别输入no,name然后将输入的no,name打印出来 [root@localhost ~]# cat test.sh #! /bin/bash read -p "enter number:" number read -p "enter nam…
[root@localhost wyb]# cat tishiuser.sh #!/bin/bash #提示用户输入一个用户名,如果存在:显示用户UID和SHELL信息:否则, #则显示无此用户:显示完成之后,提示用户再次输入:如果是quit则退出; echo 'Input `quit` to quit' while : do read -p "Please Input a user:" choice [ -z $choice ] &&continue [[ "…
[root@server0 shellStudy]# cat timeout.sh #!/bin/bash TIMEOUT=3 #超时间隔 echo "What is your name?" echo "Quickly now, you only have $ITMEOUT secconds to answare!" read name if [ -z "$name" ] #未输入任何值 then name="(no answare)&…
<input type="text" onInput="clearNoNum(this)" > //需引入jquery <script> function clearNoNum(obj){ //先把非数字的都替换掉,除了数字和. obj.value = obj.value.replace(/[^\d.]/g,""); //必须保证第一个为数字而不是. obj.value = obj.value.replace(/^\./g…
11.1使用多个命令 $date;who   //  命令列表,加入分号就可以,这样会依次执行.参见5.2.1节 注意区分$(date;who),这个是进程列表,会生成一个子shell来执行 Shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另外一个命令. Shell可以让你将多个命令串起来,一次性完成. 上面的date;who可以写入一个文件,这样就不用在命令行敲命令了,运行这个文本文件就好了. 11.2 创建shell脚本文件 第一行必须这样:指定要使用的…
shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell Linux 启动过程: BIOS -> MBR -> BootLoader(grub) -> kernel -> systemd -> 系统初始化 -> shell BIOS 基本输入输出系统 选择U盘启动还是硬盘启动:MBR 硬盘里可引导的部分:BootLoader(grub) 启动内核工具 选择启动的内核: kernel 启动内核:systemd…
[脚本1]打印形状打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n $n` do for ((j=$n;j>i;j--)) do echo -n " " done $i` do echo -n "* " done echo done # 倒直角三角形 read -p "Please input the length:…
一.打印9*9乘法表 #!/bin/bash for i in `seq 9` do for j in `seq $i` do echo -n "$i*$j=$[i*j]" done echo done 二.剪刀石头布小游戏 #!/bin/bash 2 game=(石头 剪刀 布) num=$[RANDOM%] computer=${game[$num]} #随机生成出拳可能并存入数组game[$num]:game[],game[],game[]分别代表石头,剪刀,布 echo &qu…
本文用于记录学习和日常中使用过的shell脚本 [脚本1]打印形状 打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n for i in `seq 1 $n` do for ((j=$n;j>i;j--)) do echo -n " " done for m in `seq 1 $i` do echo -n "* " done e…
1.检查主机存活状态 #!/bin/bash IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2" for IP in $IP_LIST; do NUM= ]; do if ping -w 2 $IP > /dev/null; then #设置两秒超时时间 echo "$IP Ping is successful." break else # echo "$IP Ping is failure $NUM&qu…
  索引 1. 第一行必须是"#!/bin/sh" 2. 注释:一行开头为 # 3. 定义变量 4. 逻辑符号 5. 接收参数 6. 控制流:if/then/elif/else/fi 7. 循环:for/do/done 8. 格式化输出日期 9. exist 10. 系统变量 参考文档 索引 1. 第一行必须是"#!/bin/sh" 2. 注释:#号后的为注释 3. 定义变量 4. 逻辑符号 5. 接收参数 6. 控制流:if/then/elif/else/fi 7…
与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符串等)组成的序列,每个值通过空格分隔.每循环一次,就将列表中的下一个值赋给变量.in 列表是可选的,如果不用它,for 循环使用命令行的位置参数. 下面演示几个使用for的shell脚本例子 1.顺序输出当前列表中的数字: do echo "The value is: $loop" don…
在Shell脚本中,往往会遇到一些判断类型为某个值不符合预期值的时候就退出主脚本/当前脚本/当前函数,那么Exit与return的用法与区别是什么呢? 下面先使用Exit举个简单例子,脚本内容如下 #!/bin/bash if [[ "$1" == "1" ]];then echo "your input is $1" else echo '退出' exit 0 fi echo '最后一句' 第一种执行方法: 使用Shell解析器进行调用,结果如…
Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下   $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit…
shell脚本接受输入 while read var do cat logs | grep IconsendRedirect | grep $var | awk -F'\t' '{print $8}' | wc -l cat logs | grep IconsendRedirect | grep $var | awk -F'\t' '{print $8}' | awk '!a[$0]++' | wc -l done 根据某列字段过滤不重复后统计总数和输出 cat logs | grep Icon…
有时还会需要脚本能够与使用者交互.bash shell提供了一些不同的方法来从用户处获得数据, 包括命令行参数,命令行选项,以及直接从键盘读取输入的能力. 14.1 命令行参数 就是添加在命令后的数据 比如: ./addem  10  30 10  和  30 就是传递的命令行参数 14.1.1 读取参数 bash shell会将一些称为位置参数的特殊变量分配给输入到命令行中的所有参数. 比如: $0:程序名   $1:第一个参数   $2:第2个参数 …… 以此类推直到第九个参数. 每个参数都…
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess import call call(["ls", "-l"]) subprocess比system的优势在于它更灵活(您可以获得stdout,stderr,“真实”状态代码,更好的错误处理等). 在官方文档中也建议用subprocess替代使用os.system模块. 作…
shell脚本的输入 语法:read -参数 -p:给出提示符.默认不支持"\n"换行 -s:隐藏输入的内容 -t:给出等待的时间,超时会退出read,单位是秒 -n:限制读取字符的个数,触发到临界值会自动执行 #!/bin/bash read -t -p "请输入:" param echo "您输入的是: ${param}" shell脚本输出上色 语法:echo -e "\033[字背景颜色;字体颜色;特效m字符串\033[关闭属性…
shell脚本的输入以及脚本拥有特效地输出 shell脚本输入之read命令 之前是直接在sh 后加参数 现在是另一种方式 语法:read -参数 -p:给出提示符.默认不支持"\n"换行 -s:隐藏输入的内容 -t:给出等待的时间,超时会退出read -n:限制读取字符的个数,触发到临界值会自动执行 在crt  打开 vi 123.txt -p -s -e 是换行 -t 另一种方式 shell脚本输出上色 语法:echo -e "\033[字背景颜色;字体颜色;特效字符串\…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 八.read 读取控制台输入 1.基本语法 read(选项)(参数) 选项: -p: 指定读取值时的提示符: -t :指定读取值是等待的时间(秒) 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 [root@rich datas]# touch read.sh [root@rich datas]# vim read.sh #!/bin/bash read -t 7…
编写shell脚本难免遇到需要交互式输入指令的步骤: 方法一: # cat action.sh #!/bin/sh read -p "enter number:" no; read -p "enter number:" name; echo you have entered $no,$name; # sh action.sh enter number:chavin enter number:king you have entered chavin,king # ec…
shell概念 "shell"既是一种解释型编程语言,也是一个这种编程语言的解释器的名字 shell是解释型语言,就是解释器会一条一条的翻译每一条语句并执行,对比之下,C语言是编译型语言,编译器把整个工程编译成可执行文件才能执行 在没有续行符(\回车)的情况下,shell脚本的一条语句以"回车"为结束 任何一个shell脚本程序都必须在开头用#!标识使用的shell程序,如果用的是bash,那就是#!/bin/sh shell脚本一行中的#之后的部分为注释 刚刚写完…
1.命令替换:`` 反向单引号,也称重音符.键盘上和~键在一起的那个键呦,千万不要敲成单引号. A. 使用了``后,shell首先替换输出中``括起来的date命令,然后执行整个输出命令. B.命令替换还可以用于在变量中存储命令输出,如下: 变量ctr将包含当前目录中名字以.txt结尾的文件的计数. 2.expr 大部分shell不支持数字变量,所有变量会被作为字符串.如var=25,变量var中包含的是字符2和字符5组成的字符串,而不是数字25. Expr命令用来评估算术表达式,命令的输出发送…
Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: # chsh <用户名> -s <…
转载: 阿里Linux Shell脚本面试25个经典问答 Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,"/bin/bash"是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的…
包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7rJlzYt-3S-39oMAViQQ8oHDQMdBumP3MyIaxUFmo7ZH-6b0J37 一 .shell简介 Shell不仅是命令的收集,更是一门非常棒的编程语言.可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的…
Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的: 单引号字串中不能出现单引号(对单引号使用转义符后也不行). 双引号 your_name='qinjx' str="Hello, I know your are\"…