美文网首页
shell脚本学习- 命令行参数处理

shell脚本学习- 命令行参数处理

作者: caoxinyiyi | 来源:发表于2018-09-03 11:07 被阅读4次

在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。

  • 1.直接处理,依次对1,2,...,$n进行解析,分别手工处理
    1. getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项)
    1. getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等)

提醒: 一般小脚本手工处理也许就够了,getopts能处理绝大多数的情况,getopt较复杂、功能也更强大。

本篇文章主要关注于“1.直接手工处理位置参数”

必须要要知道几个变量,

*    $0 :即命令本身,相当于C/C++中的argv[0]
*    $1 :第一个参数.
*    $2, $3, $4 ... :第2、3、4个参数,依次类推。
*    $#  参数的个数,不包括命令本身
*    $@ :参数本身的列表,也不包括命令本身
*    $* :和$@相同,但"$*" 和 "$@"(加引号)并不同,"$*"将所有的参数解释成一个字符串,而"$@"是一个参数数组。

一个实例demo: test.sh

#!/bin/bash
if [ $# -lt 1 ]; then
    echo "error.. need args"
    exit 1
fi
echo "commond is $0"
echo "args are:"
for arg in "$@"
do
    echo $arg
done

执行结果:

➜  58code ./test.sh 11 22 33
commond is ./test.sh
args are:
11
22
33

相关文章

  • 执行shell脚本传递参数的方式

    在执行shell脚本的时候,会经常遇到需要向shell脚本传递参数的情况。即是对命令行选项、参数处理的方式。例如:...

  • shell脚本如何传递给子脚本命令行参数

    shell脚本如何传递给子脚本命令行参数 shell脚本可以使用getops来分析命令行参数,现在的一个使用场景是...

  • Shell 脚本编程(高级篇)

    高级篇 一、处理用户输入 1. 读取脚本参数 Bash Shell 将命令行中传递给脚本的参数赋值给一组特殊的变量...

  • shell脚本学习- 命令行参数处理

    在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。 1.直接处理,依次对2,...,$...

  • Linux系统shell使用几点摘录(二)

    Shell脚本命令行参数说明 参数名称参数含义 $$表示Shell本身的PID(ProcessID) $!表示Sh...

  • 第14章:处理用户输入

    [TOC] #1. 命令行参数 向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向...

  • Linux Shell编程之Bash中的位置参数

    什么是位置参数 位置参数指的是 shell 脚本的命令行参数,同时也表示 shell 函数的函数参数。Bash中的...

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

  • Shell (六)

    Shell 命令行参数 在脚本中通过 $1, $2, $3, 引用参数${10} 时,参数必须在大括号中。 脚本的...

  • 标准化linux脚本的参数选项

    linux系统本身提供了很多命令行参数,为了增加shell脚本的友好型,我们脚本的命令行参数可以和系统参数保持一致...

网友评论

      本文标题:shell脚本学习- 命令行参数处理

      本文链接:https://www.haomeiwen.com/subject/rorbwftx.html