传参用法

Linux Shell 如何获取参数的方法
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

举例

新建test.sh

#!/bin/sh
echo "shell脚本名称: $0"
echo "传到shell的第一个参数: $1"
echo "传到shell的第二个参数: $2"

在命令行执行

chmod +x test.sh
./test.sh 4 5

$@和 $*

相同点

都是引用所有参数

不同点

$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。Linux就该这么学
新建file.sh,写入以下内容:

#!/bin/bash
echo "-----------------"
for key in "$@"
do
echo '$@' $key
done
echo "-----------------------------"
for key2 in $*
do
echo '$*' $key2
done

1、带引号执行及结果:

[root@localhost ~]# bash file.sh linux "python c"

2、不带引号执行及结果:

[root@localhost ~]# bash file.sh linux python c

Linux Shell获取参数的方法相关推荐

  1. linux shell 获取参数 $,Linux - Shell - 参数获取

    HTML5 canvas易错点 一.画布的默认宽高 你的浏览器不支持h ... 遍历hashMap对效率的影响 测试环境:jdk1.7.0_79\Processor 1.7 GHz Intel Cor ...

  2. Linux shell获取时间和时间间隔(ms级别)

    说明:在进行一些性能测试的时候,有时候我们希望能计算一个程序运行的时间,有时候可能会自己写一个shell脚本方便进行一些性能测试的控制(比如希望能运行N次取平均值等),总之,这其中有一个需求可能就是获 ...

  3. linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料

    下面我给各位朋友总结一下在linux中利用shell命令来获取文件md5及遍历目录下所有文件的md5的例子,希望此例子对各位同学会有所帮助, 获取文件的MD5值: $ md5sum linuxmint ...

  4. linux shell获取当前执行路径

    linux shell 获取当前正在执行脚本的绝对路径 basepath=$(cd `dirname $0`; pwd) project_path=$(cd `dirname $0`; pwd) pr ...

  5. linux进度条脚本,linux shell进度条实现方法

    linux shell进度条实现方法 直接看代码吧,很简单 复制代码 代码如下: #!/bin/bash b='' i=0 while [ $i -le  100 ] do printf " ...

  6. linux shell java 参数_java调用linux中的shell脚本传递参数并返回执行结果

    [刚接触 linux下的开发,最近遇到java调用shell脚本的问题,找到一个比较适合菜鸟级的方法,转述如下: 在需要运行的SHELL脚本第一行添加 #!/bin/sh然后在终端运行  chmod ...

  7. linux的shell键盘输入,linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示"Input your choice:",把用户的输入保存入变量choice_user中 read - ...

  8. php cli获取参数,php cli模式下获取参数的方法

    PHP在cli模式下接收参数有两种方法 1.使用argv数组 2.使用getopt方法 1.使用argv数组 例如:需要执行一个php,并传递三个参数(type=news, is_hot=1, lim ...

  9. linux命令行的操作符,Linux shell 比较运算符使用方法教程

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.对于Linux基础,肯定要掌握的是基本命令和一些重要运算符,这篇文章主要介绍了Linux shell 比较运算符详解 ...

最新文章

  1. 如何设置GridView的内框线颜色
  2. Angular的@Output与@Input理解
  3. 简单英文题 24 Divisor and Multiple(python)
  4. php 模拟客户端访问,PHP通过伪造和模拟客户端COOKIE登陆来采集抓取远程网址
  5. 为什么说ES6的class是语法糖?
  6. 水瓶座的回顾-高贵的程序员
  7. 深度学习2.08.tensorflow的高阶操作之张量排序
  8. 升级后可能遇到的故障- -从Windows 2012升级到2016案例之3
  9. Hibernate之分页查询
  10. 【定位问题】基于matlab RSSI和模拟退火优化粒子群算法求解无线传感器网络定位问题【含Matlab源码 1766期】
  11. Nodejs读写Json文件
  12. 索爱S318小蜜蜂扩音器性能如何?
  13. 教你分割视频,几分钟快速分割多个视频
  14. Aspack壳手动脱壳
  15. js实现类似栈和队列的行为,以及push和unshift两个方法的性能测试
  16. 【2020-10-28】DS12C887+驱动
  17. 让未来更近,三星The New Bixby与IoT打造智能物联
  18. 解决报错: You have not concluded your merge (MERGE_HEAD exists)
  19. 接口自动化测试项目实战
  20. 解决zeal文档下载不上的办法

热门文章

  1. 软件测试工程师面试秘籍_成为一名出色的软件工程师的一个秘诀:阅读代码
  2. redis过期推送操作及问题汇总
  3. 维京人的秘密:残暴背后的真相,敬畏神灵死后进入英灵殿
  4. Mac冒险游戏---巨人约顿for Mac
  5. 正视未来丨亮睛工程第十八批儿童斜视眼救助
  6. 8.3 证明STINGY SAT是NP完全问题
  7. Android 判断是否有录音权限
  8. SQL基础九【分组数据】
  9. KeePass搭建一个私人密码库
  10. 经皮黄疸仪QL1200A