`

shell 取脚本 参数

阅读更多

  刚开始接触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

 

分享到:
评论

相关推荐

    shell脚本如何获取随机数random

    在Linux操作系统中,shell脚本是编写自动化任务和系统管理任务的常用工具。掌握在shell脚本中生成随机数的技巧对于IT专业人员来说是非常有用的。文章中提到的生成随机数的方法可以分为以下几点: 首先,可以使用...

    shell脚本实现云存储 s3 v4签名,并上传文件到云存储

    2、适用于云存储的开发过程中,作为一个调试工具,来验证接口和参数是否正确,在shell脚本中修改调试参数,灵活方便。也可用于搭建轻量级的应用环境。 3、我的测试环境是centos7,脚本依赖的命令都是centos系统自带...

    Shell脚本传递参数的3种方法比较

    本文将详细讲解三种不同的方法来传递和解析Shell脚本参数,并通过具体的代码示例进行说明。 首先,最基本的参数传递方式是直接通过位置参数($1, $2, ..., $n)来获取。在脚本中,这些变量代表了运行脚本时在命令行中...

    如何在Shell脚本中逐行读取文件.doc

    Shell 脚本逐行读取文件方法详解 在Shell脚本中逐行读取文件是一种常见的操作,下面我们将详细介绍四种不同的方法来实现这个操作。 方法一:使用输入重定向 使用输入重定向是逐行读取文件的最简单方法。在while...

    Shell脚本函数定义和函数参数

    一、Shell函数 本教程目前为止所有脚本都是从头到尾执行。...如果愿意,可在函数名前加上关键字function,这取决于使用者。 代码如下:function 函数名(){  command1  command2  …  commandN  

    14.Shell脚本编程之expect.md

    - `[args]` 是传递给脚本的参数。 #### 3.2 选项 - `-c`: 从命令行执行 Expect 脚本,而不是从文件中读取。 - `-d`: 输出调试信息,帮助调试脚本。 **示例**: 使用 `-c` 选项直接从命令行执行简单的脚本: ```...

    Shell脚本用for循环遍历参数的方法技巧

    在Shell脚本编程中,有时候我们需要处理多个命令行参数,这时使用`for`循环来遍历这些参数就显得非常实用。本文将详细讲解如何在Shell脚本中使用`for`循环遍历参数,并介绍其中的一些小技巧。 1. **基本的参数遍历*...

    Java调用shell脚本解决传参和权限问题的方法

    在调用shell脚本时,可能会遇到权限问题,例如当我们使用`this.getClass().getResource("/callShell.sh").getPath()`获取脚本位置时,取的target下的shell脚本,这时候shell脚本是没有执行权限的。 解决方法是,在...

    公司shell脚本笔记1

    这篇公司的shell脚本笔记主要涉及了在Linux环境中编写批处理脚本的一些关键点,包括参数传递、时间处理、文件操作以及条件判断等。下面将详细解释这些知识点。 1. **参数传递**: 脚本接收多个参数,如`parameter`...

    Shell中特殊参数变量和特殊状态变量汇总

    在Shell脚本编程中,特殊参数变量和特殊状态变量扮演着至关重要的角色,它们提供了对脚本执行环境的深入理解和控制。以下是对这些变量的详细解释: **特殊参数变量** 1. `$#`:这个变量表示传给Shell脚本的参数个...

    Shell脚本把文件从GBK转为UTF-8编码

    总结来说,这个Shell脚本通过接收一个文件或目录作为参数,能够有效地将GBK编码的文本文件转换为UTF-8编码。在处理大量文件时,这种自动化的方法大大提高了效率,减少了手动操作的繁琐。需要注意的是,转换过程中...

    ssh远程执行命令方法和Shell脚本实例

    ### SSH远程执行命令方法与Shell脚本实例 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。本文将深入探讨如何使用SSH进行远程命令执行,并通过具体的Shell脚本示例来帮助读者更好地理解和掌握这一...

    Shell脚本实现根据端口号kill相应进程功能

    在Linux操作系统中,...总之,通过Shell脚本根据端口号kill进程是一种常见的运维任务,熟练掌握相关命令及脚本编写技巧对于Linux系统管理员来说非常重要。在编写和执行这类脚本时,务必谨慎,以免造成不必要的损失。

    简易脚本实例带你了解Shell脚本

    这个脚本使用`ls -l`列出文件的详细信息,然后通过管道(`|`)传递给`ls -S`按大小排序,再使用`head -n 2`取前两个文件名。 三、获取指定网卡的IP地址 脚本首先检查是否指定了网卡名称,然后调用`ifconfig`命令获取...

    Shell脚本中判断输入变量或者参数是否为空的方法

    ### Shell脚本中判断输入变量或者参数是否为空的方法 在Shell脚本开发过程中,经常会遇到需要判断用户输入的变量或参数是否为空的情况。这不仅能够提高脚本的健壮性,还能增强用户体验。本文将详细介绍五种不同的...

    SHELL经典笔试题及答案 小实例

    脚本中使用的参数包括进程名和时间间隔。使用while循环来不断地取CPU占用率,并将结果写入到日志文件中。 知识点: * top命令的使用 * grep命令的使用 * awk命令的使用 * while循环的使用 * shell script的编写 2...

    shell_examples:Shell脚本示例

    Shell示例和演示一个显示shell脚本示例的存储库。 目的是使用示例来演示壳如何表现和压缩一些假设。先决条件安装 为Shellcheck安装vscode扩展code --install-extension timonwong.shellcheck外壳帮助取决于运行的...

    Shell脚本实现复制文件到多台服务器的代码分享

    下面是一个实现这一功能的Shell脚本示例,它接受四个参数:待复制的文件全路径、目标服务器上的路径、用户名以及一系列服务器的IP地址。脚本首先定义了一个名为`help`的函数,用于显示使用说明。当用户输入`-h`时,...

    Linux系统脚本

    此外,脚本可以接收位置参数,这些参数可以通过特定的变量访问,如`$0`表示脚本名,`$1`、`$2`等表示后续参数,`$#`表示参数总数,`$*`和`$@`用于引用所有参数(`$@`在双引号中使用时,会保留每个参数的独立性),`$...

Global site tag (gtag.js) - Google Analytics