【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
相关推荐
云和数据.ChenGuang33 分钟前
运维工程师技术教程之nginx ip访问机制
运维·tcp/ip·nginx
没有名字的鬼1 小时前
RK3399 SSH连接设置
linux·ssh·rk3399·mobaxterm
“αβ”1 小时前
MySQL库的操作
linux·服务器·网络·数据库·c++·mysql·oracle
lhyzws1 小时前
CENTOS上的网络安全工具(二十八)SPARK+NetSA Security Tools容器化部署(4)
linux·spark·centos
岚天start1 小时前
源码编译安装的Nginx增加echo模块过程详解
linux·运维·数据库
2201_757830871 小时前
Stream的终结方法
java·服务器·前端
胖咕噜的稞达鸭2 小时前
进程状态,孤儿进程僵尸进程,Linux真实调度算法,进程切换
linux·运维·算法
hen3y2 小时前
清理 Git 代码库大文件历史记录
运维·git
岚天start2 小时前
Nginx内置变量详解
运维·nginx
wanhengidc2 小时前
跨境电商为什么依赖于云手机
运维·服务器·游戏·智能手机·云计算