linux输入参数的获取及处理

Posted 小公子”

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux输入参数的获取及处理相关的知识,希望对你有一定的参考价值。

关于参数

$0	#程序名
$1	#第一个参数
$9	#第九个参数
$10	#第十个参数
$@	#显示全部参数
$*	#显示全部参数
$?
$#	#显示参数个数
$!#	#显示最后一个参数

关于选项

命令行输入的不仅可以有参数,还可以有选项

选项

$ ./test -a -b -c   #其中a、b、c为选项

分离 - 参数 - 和 - 选项 -

$ ./test -c -a -b -- num1 num2 num3
# 其中 a b c 是选项;
# 其中 num1 num2 num3 是参数;

getopt 命令

# 格式:getopt options opstring params
getopt ab:cd -a -b test1 -cd test2 test3
-a -b test1 -c -d -- test2 test3

#解释:
#optstring 定义了4个有效选项字母,a b c d
#其中 b 需要一个参数

获得用户输入

1.获得键盘输入
read

$ cat test1
#!/bin/bash
echo -n "enter your name:"  #-n 移除掉字符串末尾的换行符,允许脚本用户紧跟其后输入数据,而不是下一行。
read name
echo "hello $name ,welcome!"
$ ./test1
enter your name:chen
hello chen,welcome!

read -p的使用:
允许直接在read命令行指定提示符

$ cat test1
#!/bin/bash
read -p "please enter your age:" age
echo "you are $age*365 days old ,welcome!"

2.关于read超时问题
使用-t选项,可以指定计时器
-t :指定了read命令等待输入的秒数,计时器过期后,read命令会返回一个非零退出状态码。(非o退出状态码,表示最近执行的一条指令失败哦!)

if read -t 5 -p "please enter your name:" name
then
	echo "hello $name,welcome to my channel!"
else
	echo "sorry , too slow !!!"

3.隐藏方式读取
比如输入密码的时候,不想让密码显示在屏幕上
-s选项可以满足需求。

$ cat test1
#!/bin/bash
# hiding data from the monitor
read -s -p "enter your password:" password
echo "is your really $password ?"

$
$ ./test1
enter your password:
is your really hello ?

以上是关于linux输入参数的获取及处理的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统date命令的参数及获取时间戳的方法

linux:文本处理系列-1.行截取

Linux shell 脚本 间接获取输入参数的方法

linux sed命令参数及用法详解

LINUX文件内容处理及文本编辑器vim

Linux命令及获取帮助