【Linux】处理用户输入

一、基本介绍

1、如何传递参数

向shell脚本传递数据的最基本方法就是通过命令行参数。如下,这条命令会向test.sh脚本传递10和20这两个参数。

./test.sh 10 20

2、如何读取参数

bash shell会将所有的命令行参数都指派给称作**位置参数(positional parameter)**的特殊变量,包括shell脚本名称。

$0:对应脚本名;

$1:对应第一个命令行参数

$2:对应第二次命令参数

以此类推,直到$9

bash 复制代码
#!/bin/bash

#计算阶乘
factorial=1
for (( a = 1; a <= $1; a++ ))
do
  factorial=$[ $factorial * $a ]
done
echo "$1的阶乘是$factorial."

因为传入的参数之间是以空格分隔的,如果传入的参数带有空格,就需要使用引号

bash 复制代码
#!/bin/bash

echo "Hello $1, you are a good man."
exit

3、参数超过9个

如果想要传入的参数超过9个,需要在第9个位置变量后,在变量名的两侧加上花括号,如${10}。

bash 复制代码
#!/bin/bash

product=$[ ${10} * ${11} ]
echo "第10个参数是${10}."
echo "第11个参数是${11}."
echo "product的值是$product."
exit
相关推荐
OCR_1337162127514 分钟前
技术解析:护照OCR查验核心逻辑,跨境身份核验的技术实现路径
大数据·运维·人工智能
CQU_JIAKE26 分钟前
5.7[Q]
linux·运维·服务器
坤盾科技27 分钟前
Docker 离线地图服务器搭建实战:Node.js + OpenLayers + MBTiles
linux·javascript·arcgis·docker·node.js
wanhengidc32 分钟前
算力服务器的应用场景
运维·服务器·人工智能·安全·web安全·智能手机
Harvy_没救了36 分钟前
【容器技术-Docker】Docker镜像
运维·docker·容器
飞飞传输40 分钟前
内外网文件交换系统产品推荐:高密网低密网摆渡更安全高效
大数据·运维·安全
蚊子码农40 分钟前
某个问题-如何配置一台最小路由器(基于linux操作系统)
linux·网络·智能路由器
Waay43 分钟前
Linux Shell 知识点考评(二):sed 流编辑器(附答案)
linux·运维·服务器
Qt程序员43 分钟前
从协议到实战:HTTP 反向代理
linux·c++·websocket·nginx·http·反向代理·正向代理
笨笨饿44 分钟前
#85_库函数开发
linux·c语言·网络·stm32·单片机·算法·个人开发