分组读取

今天写shell脚本的时候,遇到一个问题,需要将传入的参数分组读入
比如 sh test.sh 1 2 3 4 5 6 7 8 9
我希望1 2 3 是一组 4 5 6 是一组
先上实现代码:
cat test.sh

for i in "$@"
do echo $i
done
exit 0

调用1 sh test.sh “1 2 3” “4 5 6” “7 8 9”
输出
1 2 3
4 5 6
7 8 9
调用2 sh test.sh “1 2” 3
输出
1 2
3
这样就实现了分组读取

why?

其实$@ $* 在未加引号的时候 都是引用所有参数
cat test.sh

for i in $@
do echo $i
done
exit 0

不论 $@ $*
执行 sh test.sh “1 2” 3
输出都是
1
2
3
但是在加引号后 “$@” 表示按照引号的分组读取
“$" 表示所有的都是一个参数
替换成 "$
” 后
同样的输入,输出为
1 2 3

其他特殊变量:

$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2.
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

shell 参数的分组读取相关推荐

  1. Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等

    1.  Hive基本操作 1.1DDL操作 1.1.1    创建表 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_nam ...

  2. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  3. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)

    pandas使用groupby函数对dataframe进行分组统计.使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index) 目录

  4. pandas读取csv文件的前几行数据(nrows参数)、pandas读取csv文件的中间几行数据(skiprows=range(a,b))

    pandas读取csv文件的前几行数据(nrows参数).pandas读取csv文件的中间几行数据(skiprows=range(a,b)) 目录 pandas读取csv文件的前几行数据.pandas ...

  5. C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结。

    C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fope ...

  6. 【C++】42.使用YAML文件进行参数配置、读取与生成YAML文件

    关于配置文件的使用,除了本文的yaml的方法,经常使用的还有proto的方法,请参考我另一篇博客:proto相关用法:方法2.. c++中如果要使用YAML,需要安装yaml-cpp库,安装完成后使用 ...

  7. shell正则表达式截取字符串_从CVE20208816聊聊shell参数扩展

    1.前言 最近偶然看到了Pi-hole <=4.3.2远程代码执行漏洞(CVE-2020-8816)相关的文章,漏洞成因不是很难,但是里面构造的Exp引起了我的兴趣.由于Pi-hole代码对命令 ...

  8. shell参数带有空格问题

    有shell脚本readFile.shell,它的作用是接收一个文件名称,然后打印出文件的文本内容. #!/bin/bash#打印入参 echo ${1}#打印文本内容 cat `/home/hds/ ...

  9. request java获取参数body_@RequestBody参数已经被读取,究竟是何原因?

    不知道你们有没有对用户输入的东西进行过敏感校验,如果不进行校验,用户属于一些攻击脚本,那么我们的服务就挂逼啦!所以我们首先需要通过过滤器将用户的数据读出来进行安全校验,这里面涉及到一个动作,就是需要将 ...

  10. shell脚本系列:5、shell参数

    shell脚本系列:5.shell参数 文章目录 shell脚本系列:5.shell参数 1. 位置参数 2. 特殊参数 2.1 参数* 2.2 参数@ 2.3 参数# 2.4 参数? 2.5 参数- ...

最新文章

  1. 台湾国立大学郭彦甫Matlab教程笔记(14)polynomial differentiation多项式微分
  2. 兼容多种屏幕分辨率的通栏大图实现方法
  3. 精通spring——深入java ee开发核心技术 pdf_2019精通Spring Boot 42讲 高清pdf完整版
  4. 使用指针在函数中交换数值
  5. Leetcode 242.有效的字母异位词(哈希表)
  6. Python_Socket实现简单的ssh/ftp
  7. java输入年月判断当月天数_java输入月份,年份,显示对应月份的天数,
  8. SQL Server误区30日谈-Day28-有关大容量事务日志恢复模式的误区
  9. 网页设计中最常用的字体
  10. 吾很努力了,吾不是关键因素
  11. Android mc怎么和win10联机,我的世界手机版与win10版联机可完美互通
  12. cad抠图 lisp_五个实用的AutoCAD的lisp程序
  13. 微信小程序--单行文本、多行文本溢出变省略号...
  14. go clean 命令介绍
  15. 关于IDEA下载安装,jpcap与wincap的一些使用方法
  16. 开源虚拟化KVM(一)搭建部署与概述
  17. 2018-01-20 HDU 4609 FFT 快速傅里叶变换
  18. 怎么样手机里面的计算机发出音乐,周三手机课︱怎样把U盘、电脑、微信的音乐存在手机里?...
  19. 用PHP写PHP扩展-Another way writing php extensions
  20. 零基础能不能学计算机专业,零基础新手可不可以学会计算机电脑

热门文章

  1. python自由落体_Javascript摸拟自由落体与上抛运动原理与实现方法详解
  2. 25匹马,5个跑道,不用外界工具怎样选出最快的5匹,要次数最短
  3. HTML学习之制作导航网页
  4. 英特尔第二代神经计算棒(Intel Neural Compute Stick 2)相关测试
  5. AI改变现代商业的25种方式
  6. 神州行省内流量套餐6元500M申请,发送BLSN6到10086即可
  7. QQ连连看外挂--基于LAScript
  8. 群发邮件避免被识别为垃圾邮件
  9. iphone换android手机铃声,iPhone6s怎么更换手机铃声 iPhone苹果6s更换铃声教程
  10. svchost.exe“病毒”