linux shell判断脚本执行时传入了多少个参数,判断脚本参数个数,参数数量
需求描述:
在写shell脚本的时候,会有这样的需求,脚本在执行的过程中是需要传入参数的,如果没有参数传递给脚本,
就会给出相应的脚本使用方法或者例子,告知,脚本后面应该加什么样的参数。所以呢,这里要做的就是如何
知道当前传递给脚本的参数的数量,如果是0个,就执行使用说明的显示。
实现方法:
脚本中通过$#来判断,当前传递给脚本的参数的数量。
测试脚本:
#!/bin/bash echo $#
测试过程:
分别传入多个参数,并且执行脚本,查看执行的结果。
[root@redhat6 ~]# ./ts.sh para1
1
[root@redhat6 ~]# ./ts.sh para1 para2
2
[root@redhat6 ~]# ./ts.sh para1 para2 para3
3
[root@redhat6 ~]# ./ts.sh para1 para2 para3 para4
4
[root@redhat6 ~]# ./ts.sh para1 para2 para3 para4 para5
5
说明:通过以上的执行结果可以知道,$#的数量即传递给脚本的参数的数量是从$1开始计算的,如果在$1的位置有内容就计数为1,$1 $2的位置都有内容则计数为2,依此类推。
注意:$0是脚本本身,不算是参数,从$1开始计算。
判断如果传入的参数的数量等于0,那么就显示脚本使用方法:
if [ $# -eq ];
then
usage
exit
fi
备注:usage是自定义函数,这里仅仅是做一个演示调用,具体情况要自行定义该函数。
文档创建时间:2018年3月8日18:27:26
linux shell判断脚本执行时传入了多少个参数,判断脚本参数个数,参数数量的更多相关文章
- crontab 中 python(cx_Oracle)脚本执行时需要用户环境变量,怎么办??
import cx_Oracle Traceback (most recent call last): File "", line 1, in ? ImportError: lib ...
- 编写Linux中sh文件执行时出现莫名字符的问题
今天在项目中需要编写一个sh,执行一些初始化操作,然后调取原来的执行文件,但是我在操作中主要到了首行需要加入#!/bin/sh 的表达式,但是在执行时总是报错,原因是每次执行,表达式后边都会添加一个莫 ...
- Linux Shell多命令执行
有三种: :只是顺序执行,命令之间没有任何关联,不相互影响.如 ls;date;cd /etc/ 如,创建100M的文件. && 命令之间有关系,只有前一条命令正确执行才会执行下面一 ...
- linux shell的配置文件执行顺序
shell配置文件的作用:初始化环境变量.设置命令提示符.指定系统命令路径等 shell配置文件分类: (1)系统级别配置文件: /etc下,比如/etc/profile./etc/bashrc (2 ...
- [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 什么是shell shell的分类 shell脚本的执行方式 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- Linux Shell 笔记
1.查看进程的环境变量 普通:$cat /proc/1642/environ 换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SE ...
- Linux Shell 编程基础详解——吐血整理,墙裂推荐!
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
- Linux Shell 变量自加
转至:https://blog.csdn.net/dj0379/article/details/50946398/ declare -i iv=$svnvlet iv+=1shell中变量自增的实现方 ...
随机推荐
- VC++编程之道读书笔记
第二篇 缪误21:位图数据是按照红绿蓝顺序存储的 大家都知道位图的颜色是由红.绿.蓝三个分量构成的,但是位图颜色数据存储的方式则不是按照这个顺序存储的,而是按照蓝.绿.红的顺序存储的.并且对于真彩色位 ...
- LeetCode: Combination Sum II 解题报告
Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find all uni ...
- 【JavaFx】客户端服务器C/S架构搭建
客户端获取服务器端软件更新版本方法: package com.platform.ui.update; import java.io.BufferedInputStream; import java.i ...
- mysql 修改表的字符集
修改表的字符集 88down voteaccepted If you want to change the table default character set and all character ...
- biicode:一个现代的 C 依赖管理器
因为经营原因,公司已经倒闭了. Biicode (just the company) post-mortemPosted on August 11, 2015 by biicode TeamThis ...
- Makefile 编译动态库文件及链接动态库
本文为原创文章,转载请指明该文链接 文件目录结构如下 dynamiclibapp.c Makefile comm/inc/apue.h comm/errorhandle.c dynamiclib/Ma ...
- Python3分别将list、numpy数组内容写入txt文件中
1.python保存numpy数据: numpy.savetxt("result.txt", numpy_data) 2.保存list数据: file=open('data.txt ...
- C++ 递归实现汉诺塔
C++实现汉诺塔 #include <iostream> using namespace std; void move(int n,char x,char y,char z) { ) { ...
- centsos7修改主机名 [root@st152 ~]# cat /etc/hostname
CentOS7修改服务器主机名方法CentOS7下修改主机名第一种:hostname 主机名01.hostname 主机名称 <pre name="code" class=& ...
- 在JavaScript里写类层次结构?别那么做!
从理论上讲,JavaScript并没有类.在实践中,下面的代码片段被广泛认为是JavaScript“类”的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 fu ...