【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
相关推荐
代码讲故事1 小时前
从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题
linux·运维·服务器·windows·远程连接·远程桌面·xrdp
qq_243050793 小时前
irpas:互联网路由协议攻击套件!全参数详细教程!Kali Linux入门教程!黑客渗透测试!
linux·网络·web安全·网络安全·黑客·渗透测试·系统安全
IT北辰4 小时前
Linux下 date时间应该与系统的 RTC(硬件时钟)同步
linux·运维·实时音视频
Jason Yan4 小时前
【经验分享】ARM Linux-RT内核实时系统性能评估工具
linux·arm开发·经验分享
Shootingmemory4 小时前
自动化01
运维·自动化
苹果醋34 小时前
golang 编程规范 - Effective Go 中文
java·运维·spring boot·mysql·nginx
步、步、为营5 小时前
.net无运行时发布原理
linux·服务器·.net
等一场春雨5 小时前
CentOS 安装Redis
linux·redis·centos
心灵Haven5 小时前
CentOS 7乱码问题如何解决?
linux·运维·centos
__pop_5 小时前
记录一次 centos 启动失败
linux·运维·服务器·centos