刚开始接触shel脚本,感觉语法很恶心,很容易出错(没有python那么容易写),不过用shell相关的命令的时候觉得很爽,
感觉功能很强大,总的来说,有时候用shell 还是很理想的方式,因为你要做这件事情,他是最方便的。这里介绍一些执行脚本得到参数的方式。我也是初学,总结一下。望大家补充!
1. 最简单的方式
通过下面的代码大家应该就都明白了,如果不明白的话, 建议去看书吧。
#test1.sh
#!/bin/bash
if [ "$#" -lt 3 ] #判断一下参数的个数对不对
then
echo "need args"
exit
fi
#输出第一个参数
echo $1
#输出第一个参数
echo $2
#输出第一个参数
echo $3
2.while +case 判断参数
while [ $# -gt 0 ]; do
case $1 in
-h|--help)
print_help
exit 0
;;
-V|--version)
print_version
exit 0
;;
-l|--listen)
listening_address=$2
shift 2
;;
-p|--port)
lipo=$2
shift 2
;;
-P|--protocol)
proto=$2
shift 2
;;
-v|--verbose)
verbose=true
shift
;;
--)
shift
break
;;
*)
echo "Internal Error: option processing error: $1" 1>&2
exit 1
;;
esac
done
3.循环读取参数
从文件中读取数据
参数LINE表示行的内容,$file_name表示文件名称,该循环读取文件效率是非常高的,和cat相当。
有了上面的方法我们就可以对文件逐行操作,可以编写配置参数文件。
while read LINE
do
echo $LINE
done<$file_name
另一种:
list="aa bb cc dd"
set -- `echo $list`
for((i=1;i<5;i++))
do
echo $1
shift
done
4.getopts 方式
经常用ls -al 等命令,如果想自己弄一个的话,getopts命令很好用
例:#newdate
if [ $# -lt 1 ]
then
date
else
while getopts mdyDHMSTjJwahr OPTION
do
case $OPTION
in
m) date '+%m ';; # Month of Year
d) date '+%d ';; # Day of Month
y) date '+%y ';; # Year
D) date '+%D ';; # MM/DD/YY
H) date '+%H ';; # Hour
M) date '+%M ';; # Minute
S) date '+%S ';; # Second
T) date '+%T ';; # HH:MM:SS
j) date '+%j ';; # day of year
J) date '+%y%j ';;# 5 digit Julian date
w) date '+%w ';; # Day of the Week
a) date '+%a ';; # Day abbreviation
h) date '+%h ';; # Month abbreviation
r) date '+%r ';; # AM-PM time
\?) echo "Invalid option $OPTION";;
esac
done
fi
5. 循环遍历所有的参数
for i in $@
do
echo $i
done
最后附上一篇挺全的文章:http://www.cnblogs.com/steven_oyj/archive/2010/06/01/1749007.html
分享到:
相关推荐
2、适用于云存储的开发过程中,作为一个调试工具,来验证接口和参数是否正确,在shell脚本中修改调试参数,灵活方便。也可用于搭建轻量级的应用环境。 3、我的测试环境是centos7,脚本依赖的命令都是centos系统自带...
一、Shell函数 本教程目前为止所有脚本都是从头到尾执行。...如果愿意,可在函数名前加上关键字function,这取决于使用者。 代码如下:function 函数名(){ command1 command2 … commandN
$#:传给Shell脚本的参数个数 $0:当前Shell脚本名 $1:传递给Shell脚本的第1个参数,若没有则为空 $2:传递给Shell脚本的第2个参数,若没有则为空 $3:传递给Shell脚本的第3个参数,后续以此类推 ${10}:传递给...
Shell示例和演示一个显示shell脚本示例的存储库。 目的是使用示例来演示壳如何表现和压缩一些假设。先决条件安装 为Shellcheck安装vscode扩展code --install-extension timonwong.shellcheck外壳帮助取决于运行的...
作为命令语言,它交互式解释和执行用户输入...如果仅需返回一个 PHP shell脚本,我就使用 passthru()。通常,我在不同的场合中使用不同的函数,并且有时它们是可以互换的。 这完全取决于我的心情和要实现的目的
作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,属于一种脚本解析程序。...
取网卡参数.ec 取网络文件尺寸.ec 取网页元素.ec 取 腾讯TT浏览器的地址栏文本模块.ec 取节气模块.ec 取试用数据.ec 取非系统进程全路径文件名.ec 变身_超级编辑 框.ec 变速模块(1.0).EC 古木_选择文件夹.ec 古木...
4、$_在此之前执行的命令或脚本的最后一个参数 代码如下: cat> test$.sh echo’$$=’$$ echo’$!=’$! echo’$?=’$? echo’$@=’$@ echo’$_=’$_ #输出如下 sh test\$.sh 1 2 3 $$=2556 $!= $?=0 $@=1 2 3 $*和$...
每个脚本块都将测试IPv6地址作为参数,并针对特定的正则表达式或IpAddress.TryParse()方法测试该地址。 如果测试认为该地址有效,则脚本块返回true,否则返回false。 脚本的下一个(最大)部分定
子程序 到短路径, 文本型, 公开, 取指定路径的短路径名(返回收缩后的路径,无效返回空文本)如: c:\program files\ 收缩后为:C:\PROGRA~1\ .参数 文件名, 文本型, , 原路径 .子程序 到任意进制, 文本型, 公开, 可以将...
该脚本获取电压偏移(参数或来自配置)并将其转换为正确的HEX值,然后使用msr-tools软件包中的wrmsr命令将其写入负责欠压的寄存器中。 此机制是从Windows程序ThrottleStop反向工程而成的,它写入msr 0x150寄存器。 ...
取决于参数类型的自动补全(默认情况下,命令和文件路径可用) 所有消息都可以解决(对l18n有用) 录制宏 运行时用户输入验证(可以使用自己的机制或JSR303-Validation) 有关将来可能的更改,请参见 这个怎么...
install.sh脚本可以将某些自定义功能(取决于所接收的参数)应用于当前用户控制台和Ubuntu-Linux环境,例如本地函数,文件模板和全局变量。 同样,也可以安装第三方软件,包括其依赖项。 该uninstall.sh可用于卸载...
您可以在脚本中编辑bemenu参数,以使设计套件成为您的设置(请参阅man bemenu)。 当前,菜单显示每个要选择的容器的坐标和过程名称,虽然它不是很漂亮,但是必须标识正确的容器。 如果有人对此有更好的解决方案,...
(取决于运行脚本时指定的键),因此,此脚本可用于两个文件夹:“ sdcard / Downloads”和“ sdcard / Stick Nodes”。 sdcard /下载/节点: /结果 如果使用-cnd -mnd -d,则结果将在此目录中。 ls.txt 这是一...
在手动创建新合同或使用eoscpp -n name创建开发合同之后,需要对开发环境进行配置,以便您可以专注于合同的代码,而不是杂乱的命令行工具,参数,键和其他详细信息。 以下脚本旨在帮助简化设置
作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,属于一种脚本解析程序。...
6. Shell脚本的调试方法 32. 正则表达式 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言中使用正则表达式 33. 信号 1. 信号的基本概念 2. 产生信号 2.1. 通过终端按键产生信号 2.2. 调用系统函数向进程发信号 ...
Chokidar CLI 快速的跨平台... 虽然原则上chokidar-cli支持单引号和双引号,但实际的命令行参数解析取决于所使用的操作系统和shell;因此,实际的命令行参数解析取决于所使用的操作系统和shell。 为了实现跨平台兼容
Node.js招聘任务这是一个简单的电影API。 api文件夹中有OpenApi规范(如json和yaml ),也可在上。运行应用很少需要环境变量才能正常运行该应用程序。...它使用一个简短的shell脚本,该脚本调用docker-compose D