Shell编程中的用户输入处理】的更多相关文章

Linux read命令用于从标准输入读取数值. read 内部命令被用来从标准输入读取单行数据.这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据. 语法 read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] 参数说明: -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符.…
shell编程中用户输入处理1.命令行参数2.脚本运行时获取输入 命令行参数 通过空格来进行分割的位置参数 :$+position $0,$1,$2 ....$0 :程序名$1,$2,$3 ... $910及其以上的${10} add.sh #/bin/bash echo "file is $0" echo "1->$1" echo "2->$2" echo "10->${10}" echo "11…
Shell编程中Shift的用法 位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*.若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为…
在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用语法 1.for循环 for循环常用的语法结构有如下几种: for 变量 in seq字符串 for 变量 in `command` " " for 变量 in "$@"或“$*” for((赋值:条件:运算语句)) 2.while循环 while循环常用的语法结构有如…
本文转载自:http://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html Shell编程中Shift的用法 位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其…
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || 2014年09月29日 16:52:47 hack8 阅读数:15838更多 个人分类: 编程嵌入式系统木马路由器   & 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,…
if语句在任何编程中都是必不可少.至关重要的分支语句,shell也是如此,只不过各种编程中的方式和格式有点不太一样 shell编程中的if语句基本格式如下: if [ X$1 = XA ];then command; elif [ X$1 = XB ];then command; else command; fi 注意:[ ]前后都有空格和if以及变量分开 也可以写成如下形式: if test X$1 = XA;then    commandelif test X$1 = XB;then   …
shell编程中如果向oracle中插入数据之类的,需要先把执行语句放到文件中,然后再@这个文件执行 有如下俩种方式供参考: SQL=`sqlplus user/pwd@orains <<EOF@SqlfileexitEOF`或者echo "exit"|sqlplus user/pwd@orains @sqlfile…
shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, 这有助于shell解释器的写法. 在调用方法上, 跟 命令的方式是一样的, 也是 函数名 arg1 arg2 ... 函数名就相当于命令名. 对于一个命令来说, 格式是: ls /etc 命令名 [options] arg... 所以函数也是一样 funcName arg1 arg2 ..., 这里…
linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! shell编程中 不分数据类型, 所有的变量都 是字符串. 要进行 数值 / 数字的 整数运算, 就要用let, expr, (( ))等方式进行! 另外, shell中 只能处理整数, 不能处理 浮点数. 要用浮点运算, 需要用bc 程序 双小括号的使用 [foo@localhost ~]$ myfu…
SHELL编程中经常会涉及到数值计算,有时候对于这些计算命令使用场景容易忘记或者混淆,这里针对常用的命令做个总结.主要包括let.bc.expr.(())等. 1.let 使用格式:let 表达式,表达式必须是完整的表达式,即等号两边.只能赋值,不支持浮点数运算,不支持直接输出 $ var= $ let var+= #var=12,中间不能有空格 $ let var=var+ #var= $ let var*= #var= $ let var/= # var= 无法计算浮点数,报错 $ var=…
Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int len = sc.nextInt(); int[] array = new…
缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习都应该遵循简单.易用的原则. shell编程中数组的简单用法及示例 新版本的Bash支持一维数组. 数组元素可以使用符号variable[xx]等方式来初始化. 另外, 脚本可以使用declare -a variable语句来指定一个数组等.要引用一个数组元素(也就是取值), 可以使用大括号, 访问…
今天分享一个有关shell编程中由通配符引起的问题. 1. 问题代码 cat test.logs 4567890 * ##*************************************## rtyuio**tyuio432 ##*************************************## *rtyuiop*2* yuiop ##*************************************## rtyuiop(3 * 4)iuytr ##********…
java中取得用户输入的方法 1.采用java.util.Scanner类 采用Scannerd的next()方法读取,测试代码如下: Scanner sc=new Scanner(System.in); System.out.println("waiting inputchar:"); String n=sc.next(); System.out.println(n); 当然记得在上面引入相关包: import java.util.Scanner; 2.采用BufferedReade…
1.使用命令行参数 在shell执行的时候命令行中输入的所有参数可以赋值给一些特殊变量,这些变量成为位置变量参数. 包括: $0返回脚本名称.$1为第一个参数.$2为第二个参数 ...$9第九个参数 在变量到9个之后,必须使用大括号将变量括起来 ${10}第十个参数 $#是获取传入的参数数量 $*是获取所有参数 $@和$*类似 案例 [root@hzy sbin]# sh crname.sh a b c 脚本的名字是:crname.sh 脚本的参数1:a 脚本的参数2:b 脚本的参数3:c 脚本…
目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root@localhost ~]# vi mytest 就建立了一个名叫mytest的文件 vim编辑器没有接触过,你就需要学习一下啊,这里介绍几个简单的命令: 单点I进入插入模式 Ctrl+c退出插入模式 在浏览模式按下":",再输入q是不保存退出.wq是保存并退出 shell的hello w…
如果你能正确可靠地识别和过滤输入,你的工作就基本完成了.最后一步是使用一个命名约定或其它可以帮助你正确和可靠地区分已过滤和被污染数据的方 法.我推荐一个比较简单的命名约定,因为它可以同时用在面向过程和面向对象的编程中.我用的命名约定是把所有经过滤的数据放入一个叫$clean的数据 中.你需要用两个重要的步骤来防止被污染数据的注入: 经常初始化$clean为一个空数组. 加入检查及阻止来自外部数据源的变量命名为clean. 实际上,只有初始化是至关紧要的,但是养成这样一个习惯也是很好的:把所有命名…
// //  main.c //  使用c语言进行编程: 题目:由电脑生成一个由0-9之间的随机数,提示用户也输入一个数字进行猜测.当猜测三次仍不中的时候结束程序. 编译环境:Xcode6.3 特别介绍函数:arc4random_uniform(n);本函数用于产生一个0-(n)中的任意一个数字.不包括n.可以直接将该函数赋值给一个变量.然后使用该变量进行相关运算. 源代码: //  Created by wanghy on 15/7/17. //  Copyright (c) 2015年 wa…
经过前面那些练习,我们已经熟悉录入一些简单的代码.这些代码可以进行一些简单的运算,在dos窗口打印出一些东西出来.我们现在要开始学习如何把数据从外部输入到我们的程序中. 其实大多数程序的工作是完成下面这几步: 1. 从用户那里得到某种输入 2. 在程序里做些加工处理 3. 输出一些信息告诉用户 在C#控制台程序中,我们用Console.ReadLine();来接收用户的输入.然后把它赋值给一个变量.还有另外一个方法用来接收用户的输入,请在网上查一下,找到这个方法.找不到的话,可以联系我哦. 在这…
在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 下面看一个命令示例,然后分析下他是如何工作的: ls foo > /dev/null 2>&1首先需要了解两个基础概念:I/O重定向.文件描述符 I/O重定向重定向 的作用是把一个命令的输出结果发送到另一个地方. 例如,使用 cat 命令查看一个文件,文件内容会被打印到屏幕 : $ cat foo.txtfoobarbaz此时,屏幕就是命令的标准输出( standard output [stdo…
按自己的意愿生活, 而且是::: 要敢于按自己的意志去活! 那是一种胆量和勇气!! shell中的结构, 只有选择(实际上if条件也是一种选择结构)和循环, 都是用关键字来替代 大括号的. 如: if 用 then ...fi来表示 代码段. case 变量 in 1)....;; 2)....;; *)....;; for 用 do... done. while也是用 do...done 来 表示代码段的. shell 中的关键字比如do, done, then等, 都是单独一行的.遵守普通规…
[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 [[ "…
这里在数组的学习中用到了用户输入,也就是交互模式,日常的数据,不可能每一次都是程序员定义好的,终究需要用户与程序之间进行交互,机器等待用户输入,用户通过键盘输入所需数据(数据包括,字符,字串,数值等). 数据输入的方式有很多种,这里介绍最简单的一种.通过Scanner类进行输入.首先,Scanner是JAVA中的内置类,需要通过导入包,然后再进行实例化. 首先导入包:   import java.util.Scanner; 然后对类进行实例化:   Scanner sc = new Scanne…
有时候在初始化shell脚本中希望能顺便创建用户并指定密码,使用useradd命令可以达到该效果: useradd -m -p encryptedPassword username 参数说明: -m : 自动建立用户的登入目录: -p encryptedPassword : 加密后的密码, 方法crypt()的返回值. username 需要添加的用户名 怎么生成一个加密密码: 使用perl的crypt()方法即可加密明文密码,示例如下: $ perl -e 'print crypt("pass…
我说过了,shell是我的常规武器,目前虽然还不纯熟,但是我爱shell这门语言,在Linux下面混,总要写脚本.程序员是有基因,对编程语言是有偏好的,你让我写C代码,我会觉得很爽,会有困难,会有痛苦的摸索和学习,但是,我愿意:学习shell/python,我也很乐意,甚至Lisp这种冷门的语言我也充满了好奇,虽然现在Go和Erlang我一点也不懂,但是我按耐不住对这两种语言的兴趣,只要我抽出手来,一定会和他们缠绵一番.有爱就会有恨,我痛苦地意识到到自己是个很情绪化的程序员,哪怕我一遍遍地骂自己…
通常在执行自动化过程中可能需要将root用户切换到其他用户进行执行,如:oralce 但是,执行的命令又要回到root用户下,继续执行root用户下的其他命令. 此时需要了解 su 命令中的参数 -c  或 -s 比如: # su - oracle -c "pwd"/home/oracle 或 su - oracle -s /bin/sh test.sh 此时执行的test.sh中相关命令要在bin/sh下,换句话说,bin/sh支持的命令才能执行. 当然我们可以将结果重定向到其他的文…
一.井号 # 1.在脚本文件中对一行进行注释. 2.在引号和\符号后不是注释,只是#号本身: echo "12 # hehe" echo '12 # hehe' echo 12 \# hehe 3.参数替代 echo $(PATH#*:) 4.进制数转换 echo $((16#a));将十六进制数a转换为十进制数表示出来 echo $((5#3));将5进制数3转换为十进制数表示出来 5.模式匹配 echo ${#string};获得变量string所含字符的个数,如果string是个…
最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法: shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行选择 Linux 中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息.这个在自动化安装的时候就会是个问题. 1.通常对于这个问题比较灵活的解决方法就是TCL的Expect.但Expect还需要另外安装,平台通用性不高,比较麻烦.…
3.Shell输入与输出    3.1.echo        echo命令可以显示文本行或变量,或者把字符串输出到文件        echo [option] string            -e:解析转义字符            -n:回车不换行,linux系统默认回车换行            转义字符:\c,\f,\t,\n……        例子程序 #!/bin/bash #echo echo -e "This echo's 3 new lines\n\n\n" e…