刚开始接触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
分享到:
相关推荐
在Linux操作系统中,shell脚本是编写自动化任务和系统管理任务的常用工具。掌握在shell脚本中生成随机数的技巧对于IT专业人员来说是非常有用的。文章中提到的生成随机数的方法可以分为以下几点: 首先,可以使用...
2、适用于云存储的开发过程中,作为一个调试工具,来验证接口和参数是否正确,在shell脚本中修改调试参数,灵活方便。也可用于搭建轻量级的应用环境。 3、我的测试环境是centos7,脚本依赖的命令都是centos系统自带...
本文将详细讲解三种不同的方法来传递和解析Shell脚本参数,并通过具体的代码示例进行说明。 首先,最基本的参数传递方式是直接通过位置参数($1, $2, ..., $n)来获取。在脚本中,这些变量代表了运行脚本时在命令行中...
Shell 脚本逐行读取文件方法详解 在Shell脚本中逐行读取文件是一种常见的操作,下面我们将详细介绍四种不同的方法来实现这个操作。 方法一:使用输入重定向 使用输入重定向是逐行读取文件的最简单方法。在while...
一、Shell函数 本教程目前为止所有脚本都是从头到尾执行。...如果愿意,可在函数名前加上关键字function,这取决于使用者。 代码如下:function 函数名(){ command1 command2 … commandN
- `[args]` 是传递给脚本的参数。 #### 3.2 选项 - `-c`: 从命令行执行 Expect 脚本,而不是从文件中读取。 - `-d`: 输出调试信息,帮助调试脚本。 **示例**: 使用 `-c` 选项直接从命令行执行简单的脚本: ```...
在Shell脚本编程中,有时候我们需要处理多个命令行参数,这时使用`for`循环来遍历这些参数就显得非常实用。本文将详细讲解如何在Shell脚本中使用`for`循环遍历参数,并介绍其中的一些小技巧。 1. **基本的参数遍历*...
在调用shell脚本时,可能会遇到权限问题,例如当我们使用`this.getClass().getResource("/callShell.sh").getPath()`获取脚本位置时,取的target下的shell脚本,这时候shell脚本是没有执行权限的。 解决方法是,在...
这篇公司的shell脚本笔记主要涉及了在Linux环境中编写批处理脚本的一些关键点,包括参数传递、时间处理、文件操作以及条件判断等。下面将详细解释这些知识点。 1. **参数传递**: 脚本接收多个参数,如`parameter`...
在Shell脚本编程中,特殊参数变量和特殊状态变量扮演着至关重要的角色,它们提供了对脚本执行环境的深入理解和控制。以下是对这些变量的详细解释: **特殊参数变量** 1. `$#`:这个变量表示传给Shell脚本的参数个...
总结来说,这个Shell脚本通过接收一个文件或目录作为参数,能够有效地将GBK编码的文本文件转换为UTF-8编码。在处理大量文件时,这种自动化的方法大大提高了效率,减少了手动操作的繁琐。需要注意的是,转换过程中...
### SSH远程执行命令方法与Shell脚本实例 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。本文将深入探讨如何使用SSH进行远程命令执行,并通过具体的Shell脚本示例来帮助读者更好地理解和掌握这一...
在Linux操作系统中,...总之,通过Shell脚本根据端口号kill进程是一种常见的运维任务,熟练掌握相关命令及脚本编写技巧对于Linux系统管理员来说非常重要。在编写和执行这类脚本时,务必谨慎,以免造成不必要的损失。
这个脚本使用`ls -l`列出文件的详细信息,然后通过管道(`|`)传递给`ls -S`按大小排序,再使用`head -n 2`取前两个文件名。 三、获取指定网卡的IP地址 脚本首先检查是否指定了网卡名称,然后调用`ifconfig`命令获取...
### Shell脚本中判断输入变量或者参数是否为空的方法 在Shell脚本开发过程中,经常会遇到需要判断用户输入的变量或参数是否为空的情况。这不仅能够提高脚本的健壮性,还能增强用户体验。本文将详细介绍五种不同的...
脚本中使用的参数包括进程名和时间间隔。使用while循环来不断地取CPU占用率,并将结果写入到日志文件中。 知识点: * top命令的使用 * grep命令的使用 * awk命令的使用 * while循环的使用 * shell script的编写 2...
Shell示例和演示一个显示shell脚本示例的存储库。 目的是使用示例来演示壳如何表现和压缩一些假设。先决条件安装 为Shellcheck安装vscode扩展code --install-extension timonwong.shellcheck外壳帮助取决于运行的...
下面是一个实现这一功能的Shell脚本示例,它接受四个参数:待复制的文件全路径、目标服务器上的路径、用户名以及一系列服务器的IP地址。脚本首先定义了一个名为`help`的函数,用于显示使用说明。当用户输入`-h`时,...
此外,脚本可以接收位置参数,这些参数可以通过特定的变量访问,如`$0`表示脚本名,`$1`、`$2`等表示后续参数,`$#`表示参数总数,`$*`和`$@`用于引用所有参数(`$@`在双引号中使用时,会保留每个参数的独立性),`$...