【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
相关推荐
charlie1145141915 分钟前
嵌入式Linux驱动开发——驱动错误处理模式 - 当资源分配失败时该怎么办
linux·运维·驱动开发
用户2367829801689 分钟前
Linux locate 命令:比 find 快 100 倍的文件搜索神器
linux
jimy113 分钟前
Oracle的oci实例vm.standard.e2.1.micro安装tailscale
服务器·安全·oracle
XD74297163615 分钟前
科技早报晚报|2026年5月8日:Agent 后端、文档索引与 token 控制层,今天更值得跟进的 3 个开源机会
运维·深度学习·自动化·开源项目·模型训练·科技新闻·ai工程化
巨大八爪鱼17 分钟前
瑞芯微RK3308B嵌入式linux:实现interrupt-controller中断控制器
linux·interrupt·rockchip·rk3308b
铁手飞鹰18 分钟前
PyModbus API对应的功能码和报文
linux·windows·python·modbus rtu·pymodbus
GISer_Jing31 分钟前
全栈实战:分支管理到CI/CD全流程
运维·前端·ci/cd·github·devops
剑神一笑36 分钟前
Linux find 命令深度解析:从递归遍历到性能优化的完整实现
linux·运维·性能优化
你今天努力了吗?*—*38 分钟前
5.1 关于http与DNS的概念与操作
服务器·网络·http
H Journey39 分钟前
Linux 下网络编程:高性能 IO 多路复用,epoll 事件处理循环
linux·网络·epoll 事件处理循环