1. 概述

    1. 参数
    2. 准备重构一版...
  2. 背景

    1. 复习一下 shell 脚本的参数获取
  3. 场景

    1. os

      1. centos7

1. 参数: 基础

  1. 概述

    1. 简单描述 参数

1. 获取参数

  1. 获取 第一个 参数

    1. 获取参数

      1. 使用 ${num} 获取参数
      2. ${1} 获取 第一个参数
    2. 代码

      #!/bin/bash
      var1=${1}
      echo ${var1}
    3. 其他

      1. 可以尝试 ${2}, ${3} 等获取后续参数
      2. 默认情况下, 如果参数不足, echo 不会报错, 其他命令, 需要验证

2. 获取多个参数

  1. 问题1: 获取多个参数

    1. 一个一个获取参数, 如果参数多了, 会不会很麻烦
  2. 解决

    1. 可以一次获得 所有参数
  3. 方案1: $*

    1. $*

      1. 一次获取所有参数
    2. 代码

      #!/bin/bash
      var1=$*
      echo ${var1}
  4. 问题2: 我分开去参数

    1. 所有参数

      1. $* 获取到的参数, 是所有参数排在一起的
    2. 需要

      1. 我想单独获得 某个参数
    3. 解决

      1. 思路1: 你知道要找 第几个 参数

        1. 使用 ${num}
      2. 思路2: 什么? 你不知道是第几个, 但是你就知道要 什么样的参数
        1. 转化为 数组

          1. 暂时不推荐

            1. 转化数组, 我还不会
            2. 转化后的数组, 不知道 元素下标的话, 需要循环, 数组的操作, 我还是不会
      3. 思路3: 使用 $@
  5. 方案2: $@

    1. 所有参数

      1. 多在 循环时 使用
    2. 代码

      #!/bin/bash
      for word in "$@"
      do
      echo ${word}
      done

3. 获取最后一个参数

  1. 问题: 最后一个参数

    1. 最后一个

      1. 我就想获得 最后一个参数
  2. 解决

    #!/bin/bash
    
    # 假设参数是 1 2 3
    # 最后一个参数, ${3}
    var1=${#}
    echo $var1
    echo ${!var1} # 倒数 第二个参数, ${2}
    var2=$[${#}-1]
    echo $var2
    echo ${!var2}
  3. 问题: 手滑没加参数

    1. 问题

      1. 忽然手滑, 没有加参数
    2. 结果

      1. 第一段直接打印出了 脚本名

4. 获取脚本名

  1. 脚本名

    1. ${0}

      1. 打印 ${0} 即可看到
  2. 问题

    1. ./<script>

      1. 显示 ./<script>
    2. bash <script>

      1. 显示 <script>
    3. source <script>

      1. 显示 -bash

        1. ????

ps

  1. ref

    1. 学习 bash
    2. Shell 传递参数
    3. Linux获取最后一个参数(参数统计)
  2. 疑问

    1. 获取脚本名称如果这么不稳定, 那是否有 稳定的方法 呢?
  3. 后续尝试下 获取 选项

Linux - Shell - 参数获取的更多相关文章

  1. Linux Shell参数替换

    Linux Shell参数替换 2013-06-03 10:01 by 轩脉刃, 1816 阅读, 0 评论, 收藏, 编辑 Bash中的符号的作用是参数替换,将参数名替换为参数所代表的值.对于 来说 ...

  2. linux shell中获取mongodb最大连接数、内存使用情况等

    前两天接到了一个新的需求,需要在linux shell脚本中监控到mongodb最大连接数.内存使用情况等. 但是我对于linux shel很不了解,只是会一些简单常用的linux的操作而已,只要一顿 ...

  3. 模块 sys shell参数获取

    sys 参数获取 获取参数 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) ...

  4. Linux Shell 如何获取参数

    $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示 ...

  5. Linux Shell参数扩展(Parameter Expansion)

    Shell Command Language在线文档: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html ...

  6. linux shell 脚本获取和替换文件中特定内容

    1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...

  7. linux shell 命令获取字符串/文件的MD5值

    获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...

  8. linux shell脚本常用语句

    linux shell 指令 诸如-d, -f, -e之类的判断表达式: 文件比较运算符-e filename  如果 filename存在,则为真  [ -e /var/log/syslog ]-d ...

  9. linux在shell date获取时间的相关操作

    获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...

随机推荐

  1. MySql优化之存储引擎和sql优化

    存储引擎 使用的存储引擎 myisam / innodb/ memory myisam 存储: 如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎. ,比如 bbs 中的 ...

  2. C#设计模式学习笔记:(4)建造者模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7614630.html,记录一下学习过程以备后续查用. 一.引言 在现实生活中,我们经常会遇到一些构成比较复杂 ...

  3. LeetCode 144. 二叉树的前序遍历 (非递归)

    题目链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/ 给定一个二叉树,返回它的 前序 遍历. /** * Defi ...

  4. linq行转列

    using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text; ...

  5. Window Api 通过账号密码访问共享文件夹

    using System; using System.Runtime.InteropServices; namespace PushGCodeService { public class Shared ...

  6. 当课堂因监控技术变“囚笼”,存在争议的AI使用场景该被抵制吗?

    当马云和马斯克高谈阔论AI是否会影响人类社会时,尚无"感情"的AI已在校园中"作恶".近日,一张AI监控课堂的GIF在网上迅速刷屏.这张GIF中记录了课堂中所有 ...

  7. Uva1640(统计数字出现的次数)

    题意: 统计两个整数a,b之间各个数字(0~9)出现的次数,如1024和1032,他们之间的数字有1024 1025 1026 1027 1028 1029 1030 1031 1032 总共有10个 ...

  8. ng-辅助操作

    创建组件,指令,过滤器和服务 # 创建组件 ng generate component my-new-component # 创建组件别名 ng g component my-new-componen ...

  9. css样式的兼容性

    浏览器                 前缀 IE和safari             -webkit- Chrome                -ms- Firefox            ...

  10. tensorflow张量排序

    本篇记录一下TensorFlow中张量的排序方法 tf.sort和tf.argsort # 声明tensor a是由1到5打乱顺序组成的 a = tf.random.shuffle(tf.range( ...