linux shell 处理用户输入
来源:互联网 发布:thinking in java在线 编辑:程序博客网 时间:2024/05/16 07:15
1.来自命令行的参数
./test 10 20 40 这些变量被成为位置参数. $0为程序名, $1为第一个参数, $2为第二个参数.....
2.特殊的参数变量
参数计数: $# 表示来自命令行的参数个数
所有参数: $* 和 $@在一个变量中包含所有命令行参数. $*把所有参数当场一个单词处理. $@将所有参数作为同一个字符串中的多个单词处理.
位移: shift 将每个参数变量左移一个位置. ( $0不变, 丢弃原$1变量 )
3.处理选项
看一个例子
#!/bin/bash# extracting command line optionswhile [ -n "$1" ]do case "$1" in -a) echo "-a option is in command line" ;; -b) echo "-b option is in command line" ;; -c) echo "-c option is in command line" ;; *) echo "$1 is not a option" ;; esac shiftdone
输入输出:
allen@ubuntu:~/homework$ ./shell.sh -a -b -c -d-a option is in command line-b option is in command line-c option is in command line-d is not a option从参数中分离选项:
有时会遇到即需要参数又需要选项的情况, 通过一个特殊字符码将二者分离: 双破折号 --
#!/bin/bashwhile [ -n "$1" ]do case "$1" in -a) echo "-a option is in command line" ;; -b) echo "-b option is in command line" ;; -c) echo "-c option is in command line" ;; --) shift break ;; *) echo "$1 is not a option" ;; esac shiftdonecount=1for param in $@do echo "Parameter #$count: $param" count=$[ $count + 1 ]done
输入输出:
allen@ubuntu:~/homework$ ./shell.sh -a -b -c -- v1 v2 v3-a option is in command line-b option is in command line-c option is in command lineParameter #1: v1Parameter #2: v2Parameter #3: v3
</pre><span style="color:rgb(0,102,0); font-size:14px">处理带值的选项:</span><p></p><p><span style="font-size:14px; color:#006600"></span></p><pre code_snippet_id="412803" snippet_file_name="blog_20140701_6_2667625" name="code" class="plain">#!/bin/bashwhile [ -n "$1" ]do case "$1" in -a) echo "-a option is in command line" ;; -b) param="$2" echo "-b option with parameter value $param" shift 2;; -c) echo "-c option is in command line" ;; --) shift break ;; *) echo "$1 is not a option" ;; esac shiftdonecount=1for param in $@do echo "Parameter #$count: $param" count=$[ $count + 1 ]done
输入输出:
allen@ubuntu:~/homework$ ./shell.sh -a -b v1 -c -- v2 v3-a option is in command line-b option with parameter value v1Parameter #1: v2Parameter #2: v3
使用getopt命令:
getopt options optstring parameters
选项字符串(optstring)是处理的关键,它定义命令行中的有效选项字母,还定义哪些选项字母需要参数值.
首先,在选项字符串(optstring)中列出将在脚本中用到的每个命令行选项字母.然后,在每个需要参数值的选项字母后面放置一个冒号.
allen@ubuntu:~$ getopt ab:cd -a -b v3 -cd v1 v2 -a -b v3 -c -d -- v1 v2在脚本中使用getopt:
通过set命令处理shell中的各种变量 ---- 将原始脚本命令行参数送给getopt,然后将getopt命令的输出送给set命令
set -- `getopt -q ab:cd "$@"`
4.获取用户输入
read命令接受标准输入,或其他文件描述符输入
#!/bin/bashecho -n "Enter your name:"read nameecho "Hello $name, welcome!"
<pre name="code" class="plain">allen@ubuntu:~/learnlinux$ ./read.sh Enter your name:allenHello allen, welcome!
read输入多个变量:
read -p "Enter your name: " first last
通过read读取文件:
每用一次read命令都会读取文件中的一行文本,当文件中没有可读的行时,read命令将以非零退出状态退出
#!/bin/bashcount=1cat test | while read linedo echo "Line $count: $line" count=$[ $count + 1 ]doneecho "Finished read the file"
0 0
- linux shell 处理用户输入
- 【shell】处理用户输入
- Linux学习-shell脚本编程基础之处理用户输入
- Linux命令行与shell编程笔记-13处理用户输入
- linux shell 学习之第13章 处理用户输入
- shell---ch14处理用户输入
- linux--处理用户输入
- linux shell读取用户输入
- Linux Shell 读取用户输入
- linux shell获取用户输入
- [shell脚本学习]处理用户输入
- Bash shell编程<六>:处理用户输入
- 第四章:shell处理用户输入
- shell read处理用户输入示例讲解
- Linux学 处理用户输入
- 《Linux命令行与shell脚本》笔记--第13章:处理用户输入
- linux命令行与shell脚本大全_第十三章_处理用户输入
- Linux Shell基础知识8 用户输入
- 编程,其实30岁才开始
- js 拉框选中多个元素
- 每日一得--oracle 11g卸载
- 实现最大数的输出
- IOS静态库封装(四)
- linux shell 处理用户输入
- Makefile的二次展开
- SVN三种合并类型
- mysql常用
- 枚举类型的组合
- tnsnames.ora配制文件
- Hadoop2中的日志
- 线段树算法 ---- 扫描线之面积并
- ZOJ 3322 Who is Older?.