【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
相关推荐
喵了几个咪6 小时前
MySQL 运维实战:ibd 文件批量转换为 SQL 完整指南(基于 ibd2sql)
运维·sql·mysql
2501_946786206 小时前
如何高效查找同时持有CCRC和CMA双认证的信息安全服务商?
服务器·网络·安全
瀚高PG实验室6 小时前
瀚高数据库安全版4.5.10及其以上版本使用pg_cron定时任务
服务器·数据库·瀚高数据库
bukeyiwanshui6 小时前
20260417 NFS服务器
linux·运维·服务器
冲浪中台6 小时前
从追逐技术到回归业务本质,吃互联网红利罢了
服务器·前端·人工智能·低代码
wzl202612136 小时前
企微关键词拉群之批量自动化与风控规避方案
运维·自动化·企业微信
Gofarlic_oms16 小时前
制定企业Citrix虚拟化软件资产管理政策框架
运维·服务器·开发语言·matlab·负载均衡
运维有小邓@6 小时前
MFA轰炸攻击是什么?如何有效防范?
运维·mfa
坚持就完事了7 小时前
“.sh”文件
linux·运维·服务器
Wadli7 小时前
集群C++聊天服务器
服务器·开发语言·c++