【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
相关推荐
hj2862518 小时前
Linux学习方法论 + 系统安全加固与性能优化 完整版笔记(含案例)
运维
刘某的Cloud8 小时前
硬链接 和 软链接 区别
运维·系统·硬链接·软链接
jiayong238 小时前
harness 与 hermes-agent 扩展性、安全与运维
运维·人工智能·安全·ai·架构·智能体·harness
老码观察8 小时前
数环通iPaaS架构设计的结构化与模块化方法论——从高内聚低耦合到工程落地的完整指南
java·服务器·网络
mounter6258 小时前
破局与守正:eBPF 在 Linux 内存管理中的应用、演进与重构构想
linux·服务器·网络·mmu·ebpf·linux kernel
STDD8 小时前
Linux Namespace:容器隔离的底层原理,PID、网络、挂载隔离实战
linux·运维·网络
todoitbo8 小时前
一台 2C2G 服务器上的 KingbaseES 安装记录
运维·服务器·数据库·国产数据库
Demon1_Coder8 小时前
智能体的自定义工具
java·linux·前端
gf13211118 小时前
【精确查找python脚本是否在运行】
linux·前端·python
Sunny Boy 0018 小时前
linux环境编译Pro*C 源文件(.pc文件)
linux·c语言·oracle