问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Bash 基础知识系列 #3:传递参数和接受用户输入 | Linux 中国_百度知 ...

发布网友 发布时间:2024-10-02 16:18

我来回答

1个回答

热心网友 时间:2024-10-09 20:22


Bash 基础知识系列 #3:传递参数与用户交互

(本文字数:约1400字,阅读时长大约:4分钟)


让 Bash 脚本具备动态性和交互性,是编程艺术的一大步。在本章,我们将深入探讨如何向脚本传递参数,以及如何接收用户的输入,让程序更加灵活和实用。


传递参数到 Shell 脚本是提升其功能的关键。当你运行脚本时,只需在命令行后添加变量,如:


```bash
./my_script.sh var1 var2
```

在脚本内部,参数被识别为 $1、$2 等,比如:


```bash
#!/bin/bash
echo "Script name is: $0"
echo "First argument is: $1"
echo "Second argument is: $2"
```

特别地,$0 代表脚本的名称,而后续参数则分别存储在相应的编号变量中,如 ${10}、${11}...,最多支持 255 个参数。然而,对于超过10个的参数,建议使用花括号来引用。


接下来,让我们通过一个实际案例来感受参数传递的力量。创建一个名为 arguments.sh</ 的脚本,增加对参数数量的检测:


```bash
#!/bin/bash
echo "Script name is: $0"
echo "First argument is: $1"
echo "Second argument is: $2"
echo "Total number of arguments: $#"
```

当参数不匹配时,脚本会优雅地处理,而不会中断执行。例如,少提供或多提供参数,脚本会按照已有的逻辑处理,只是没有额外的参数信息。


提升脚本的交互性,让其与用户直接对话,read</ 命令是你的得力助手。下面的 interactive.sh</ 脚本示例就展示了如何接收用户的输入:


```bash
#!/bin/bash
echo "What is your name, stranger?"
read name
echo "What's your full name, $name?"
read -p "Enter something? " full_name
echo "Welcome, $full_name"
```

现在,你已经掌握了基础,是时候挑战自我了!尝试完成以下练习,将所学运用到实际场景中:



练习 1:</编写一个脚本,接受三个参数并以逆序显示它们,如:`./reverse.sh ubuntu fedora arch` 应输出 `arch fedora ubuntu`。
练习 2:</编写一个脚本,显示传递给它的参数数量,使用 $# 特殊变量,如:`./arguments.sh one two three` 应输出 `Total number of arguments: 3`。
练习 3:</编写一个脚本,接收文件名作为参数,并显示其行数,利用 wc 命令,如:`./count_lines file.txt` 应显示文件的行数。

掌握这些技巧后,你的 Bash 编程能力将更上一层楼。继续探索,我们会在后续章节中深入探讨 Bash 的数学运算。让交互性和功能性相辅相成,让每一个脚本都成为你与机器交流的艺术品。


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
常德到龚滩多少公里 龚滩到武汉多少公里 一骑当千第一季(红旅告诉我哪个是就好)第二季是那个也告诉我第三季同 ... 一骑当千出第二季啦? 一骑当千第二季从哪看? 老余杭公园免费景点_余杭区还有什么地方好玩 现存明代大型铁、铜钟图文总汇 红米6pro手机内存只剩1G了,SD卡还有180G,有什么方法能把下载的文件弄... 红米手机如何连接电脑(红米手机如何连接电脑传文件) 大疆晓spark下载什么app操控 第五人格摄影师怎么克制_第五人格什么角色克制摄影师 速度与激情的碰撞, C语言解析Python字典代码, 就是如此任性! 很简短的英语励志名言 简短英语励志名言 求60句英语名言,要简短一点,最好是初一可以接受的 求 绿日乐队“美国白痴"中文歌词? American Idiot专辑信息 安全性能卓越的门窗一线品牌有哪些? 下雪的有意境的短句子大全简短 2024下雪的心情的经典句子 汽车缸垫坏了有什么现象? 发动机缸垫寿命是多久? 对方设置仅聊天后,对方发的朋友圈是不是就看不到,只有从通讯录点开... 石家庄一中如何转班 刘伶醉花开富贵42度 石家庄市一中 在哪可以办到正规的物联网卡? 中国平安网上车险怎么购买 平安网上买车保险怎么买 什么不要贴着墙壁 落花时节又逢君图书信息 意大利督凯提产品介绍及说明 手机提示解析程序包时出现问题怎么办? ...次脚本回显数字,执行第一次回显1,执行第二次显示2,以此类推..._百... 什么是3G手机?3G手机有哪些功能?什么牌子的比较好?价位一般是多少? 企业员工生日领导祝福语 有谁知道徐霞客游记滇游日记(二)中有哪些是描写喀斯特地貌的句子... 文化中出是什么意思? 徐霞客在“游记”中是怎么描写云南茶的? 家谱中出是什么意思? ...一升级就说你的账户在中国Store无法使用。购买前,你必须切换到美国St... ...着什么 你的账户在中国store无法使用。购买之前,你必须切换到德stor... ...像光秃秃的一根棍子,是1呢,还是I?不可能是L吧? 手机版我的世界不能走路只能飞怎么办 手机我的世界不好操控 走路的时候都弄不了东西 得停下按住不动才能执行... i在数学中代表什麼? 数学中i是什么 lol5.9版本滑板鞋路人局出装顺序 现在复仇之矛到底该怎么出装啊 要详细 比如说第一次回家该出什么 整个... ...开通了支付宝,旧手机号的花呗能转到新手机号上吗 我待会要去买东西,请问画漫画手绘的没什么笔好些,也就是画漫画所有的... 如何设置Word试卷格式?