前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Shell 传递参数

Shell 传递参数

作者头像
小小工匠
发布于 2021-08-16 02:45:52
发布于 2021-08-16 02:45:52
5.6K00
代码可运行
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构
运行总次数:0
代码可运行

文章目录

概述$n

我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。

n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

#实例

以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# author:xiaogongjiang
# date:2016-08-29

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

为脚本设置可执行权限,并执行脚本,输出结果如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

另外,还有几个特殊字符用来处理参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# author:xiaogongjiang
# date:2016-08-29

echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

执行脚本,输出结果如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

$* 与 $@ 区别:

  • 相同点:都是引用所有参数。
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# author:xiaogongjiang
# date:2016-08-29

echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
    echo $i
done

执行脚本,输出结果如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ chmod +x test.sh 
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/08/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop阅读笔记(三)——深入MapReduce排序和单表连接
JackieZheng
2018/01/08
1.8K0
Hadoop 中利用 mapreduce 读写 mysql 数据
有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv、uv 数据,然后为了实时查询的需求,或者一些 OLAP 的需求,我们需要 mapreduce 与 mysql 进行数据的交互,而这些特性正是 hbase 或者 hive 目前亟待改进的地方。 好了言归正传,简单的说说背景、原理以及需要注意的地方: 1、为了方便 MapReduce 直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInp
用户1177713
2018/02/24
2.2K0
Eclipse下Hadoop的MapReduce开发之mapreduce打包
点击next,使用默认选择,再点击next,在最下面的Main class处选择项目里的MapReduceTest
尚浩宇
2018/08/17
7960
Eclipse下Hadoop的MapReduce开发之mapreduce打包
Hadoop 在 Centos7 下的单机布署(二).HDFS.Pseudo-Distributed Operation
Hadoop 生态圈中的其它项目可以参考 Hadoop-related projects
franket
2021/08/12
4330
Hadoop 调试第一个MapReduce程序过程详细记录总结
开发环境搭建参考     <Hadoop 在Windows7操作系统下使用Eclipse来搭建Hadoop开发环境>: http://www.linuxidc.com/Linux/2014-12/111061.htm
星哥玩云
2022/07/03
8310
Hadoop 调试第一个MapReduce程序过程详细记录总结
Hadoop运行wordcount出现异常解决
近学习Hadoop,在Windows+Eclipse+虚拟机Hadoop集群环境下运行Mapreduce程序遇到了很多问题。上网查了查,并经过自己的分析,最终解决,在此分享一下,给遇到同样问题的人提供参考。
星哥玩云
2022/07/03
7580
一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序
别先生
2018/01/02
1.4K0
一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序
Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗
  (1)历史数据约56GB,统计到2012-05-29。这也说明,在2012-05-29之前,日志文件都在一个文件里边,采用了追加写入的方式。
Edison Zhou
2018/08/20
1.6K0
Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗
Hadoop阅读笔记(一)——强大的MapReduce
该文摘要总结:通过Hadoop命令行工具进行格式化读取文本文件并输出到控制台,同时通过Java代码实现MapReduce作业,将文本文件内容按行进行分割,对每一行进行统计,并输出到控制台。
JackieZheng
2018/01/08
8240
Hadoop阅读笔记(一)——强大的MapReduce
Hadoop2.6安装配置以及整合Eclipse开发环境
4.sudochown -R castle:castle hadoop-2.6.0修改权限
星哥玩云
2022/07/04
3790
Hadoop2.7.6_02_HDFS常用操作
  点击流日志每天都10T,在业务应用服务器上,需要准实时上传至数据仓库(Hadoop HDFS)上
踏歌行
2020/10/15
4520
Hadoop2.7.6_02_HDFS常用操作
Hadoop单机模式安装
Java是Hadoop的主要先决条件。首先,应该使用命令“java-version”验证 java 存在在系统中。Java version 命令的语法如下。
黑洞代码
2022/05/16
4810
Sqoop1.4.5 导入 hive IOException running import job: java.io.IOException: Hive exited with status 1
hive.HiveImport: Exception in thread "main" Java.lang.NoSuchMethodError: org.apache.thrift.EncodingUtils.setBit(BIZ)B
星哥玩云
2022/07/03
9580
hadoop生态之sqoop
在使用大数据的时候,各种不同的数据都要将数据采集同步到数据仓库中,一个是属于业务系统的RDBMS系统,也就是各种关系型数据库,一个是hadoop生态的存储,中间用于传输的数据的工具可以使用sqoop,也就是sql to hadoop。
SRE运维实践
2021/03/04
7720
hadoop生态之sqoop
对于Hadoop的MapReduce编程makefile[通俗易懂]
根据近期需要hadoop的MapReduce程序集成到一个大的应用C/C++书面框架。在需求make当自己主动MapReduce编译和打包的应用。
全栈程序员站长
2022/07/06
4970
Hadoop基础教程-第6章 MapReduce入门(6.2 解读WordCount)
WordCount程序就是MapReduce的HelloWord程序。通过对WordCount程序分析,我们可以了解MapReduce程序的基本结构和执行过程。
程裕强
2022/05/06
1K0
Hadoop基础教程-第6章 MapReduce入门(6.2 解读WordCount)
一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现
1:首先搞好实体类对象:   write 是把每个对象序列化到输出流,readFields是把输入流字节反序列化,实现WritableComparable,Java值对象的比较:一般需要重写toStr
别先生
2018/01/02
1.7K0
Hadoop基础教程-第5章 YARN:资源调度平台(5.4 YARN集群运行)
求解wordcount过程中,我们可以观察页面http://192.168.80.131:8088,
程裕强
2022/05/06
2610
Hadoop基础教程-第5章 YARN:资源调度平台(5.4 YARN集群运行)
Hadoop: MapReduce2的几个基本示例
1) WordCount  这个就不多说了,满大街都是,网上有几篇对WordCount的详细分析 http://www.sxt.cn/u/235/blog/5809 http://www.cnblogs.com/zhanghuijunjava/archive/2013/04/27/3036549.html 这二篇都写得不错, 特别几张图画得很清晰 2) 去重处理(Distinct) 类似于db中的select distinct(x) from table , 去重处理甚至比WordCount还要简单,假如我
菩提树下的杨过
2018/01/19
1.1K0
Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.
1、使用sqoop技术将mysql的数据导入到Hive出现的错误如下所示: 第一次使用命令如下所示: 1 [hadoop@slaver1 sqoop-1.4.5-cdh5.3.6]$ bin/sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table tb_user --hive-import --m 1 2 Warning: /home/hadoop/soft/s
别先生
2018/05/28
2.2K0
推荐阅读
相关推荐
Hadoop阅读笔记(三)——深入MapReduce排序和单表连接
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验