当前位置: 首页 > news >正文

shell编程(2)(3)

目录

一、永久环境变量

按用户设置永久环境变量

文件路径:

示例步骤:

删除永久环境变量

二、脚本程序传递参数怎么实现

三、用编程进行数学运算

shell中利用expr进行运算

运算与变量结合

1. 变量赋值和基本运算

2. 使用expr进行运算

3. 变量拼接

4. 条件判断结合变量


声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。

一、永久环境变量

按用户设置永久环境变量

将变量写入用户的配置文件,适用于单个用户。

文件路径:
  • Bash 用户:修改 ~/.bashrc~/.bash_profile 文件。

  • Zsh 用户:修改 ~/.zshrc 文件。

  • 通用用户:修改 ~/.profile 文件。

示例步骤:
  1. 打开配置文件:

    bash
    nano ~/.bashrc
  2. 添加环境变量:

    bash
    export VARIABLE_NAME="value"
    export PATH=$PATH:/your/new/path
  3. 保存并退出(在 nano 中,按 Ctrl+O 保存,按 Ctrl+X 退出)。

  4. 让变量立即生效:

    bash
    source ~/.bashrc
删除永久环境变量
  1. 从对应文件中删除变量。

  2. 刷新配置:

    bash复制代码source ~/.bashrc  # 用户级别
    source /etc/profile  # 系统级别

二、脚本程序传递参数怎么实现

echo 执行的文件名是:$0

echo 第一个参数是:$1

echo 传递的参数作为一个字符显示:$*

echo 传递的参数作为每个字符串显示:$@

echo 传递到脚本的参数个数是:$#

echo 最后命令的退出状态:$?

echo 脚本运行的当前进程ID:$$

  1. $0:这个变量代表当前执行的脚本文件的名称。如果脚本是通过链接或者绝对路径执行的,那么它将显示完整的路径;如果是通过相对路径执行的,那么它将显示相对路径。

    echo "执行的文件名是:$0"
  2. $1:这个变量代表传递给脚本的第一个参数。在命令行上调用脚本时,紧跟在脚本名后面的第一个值就是 $1。

    echo "第一个参数是:$1"
  3. $*:这个变量代表传递给脚本的所有参数,它们会被合并成一个单一的字符串。参数之间的分隔符默认是第一个字符(通常是空格)。

    echo "传递的参数作为一个字符显示:$*"
  4. $@:这个变量也代表传递给脚本的所有参数,但每个参数都会被视为独立的字符串。这意味着如果参数中包含空格,它们会被正确地处理。

    echo "传递的参数作为每个字符串显示:$@"
  5. $#:这个变量代表传递给脚本的参数的个数,不包括脚本本身的名称。

    echo "传递到脚本的参数个数是:$#"
  6. $?:这个变量代表上一个执行的命令的退出状态。如果命令成功执行,通常退出状态是 0;如果命令执行失败,退出状态是非 0 的值。

    echo "最后命令的退出状态:$?"
  7. $$:这个变量代表当前脚本运行的进程 ID(PID)。

    echo "脚本运行的当前进程ID:$$"

三、用编程进行数学运算

shell中利用expr进行运算

错误:expr 5+10 会回显 5+10

正确:expr 5 + 10 就会显示15了

以上方法适用于加法减法

乘法:

错误:expr 5 * 10 会报错

正确:expr 5 * 10 就会显示50了 需要使用\进行转义

除法:

正确:expr 10 / 5 会显示2

取余:

正确:expr 10 % 4 会显示2

运算与变量结合

1. 变量赋值和基本运算

#!/bin/bash
​
# 定义变量
a=5
b=10
​
# 进行基本的算术运算
sum=$((a + b))        # 加法
difference=$((a - b))  # 减法
product=$((a * b))    # 乘法
quotient=$((a / b))    # 除法
remainder=$((a % b))   # 取余
​
# 输出结果
echo "Sum: $sum"
echo "Difference: $difference"
echo "Product: $product"
echo "Quotient: $quotient"
echo "Remainder: $remainder"

2. 使用expr进行运算

expr是一个强大的工具,用于在Shell脚本中进行复杂的表达式求值。

#!/bin/bash
​
a=5
b=10
​
# 使用expr进行运算
sum=$(expr $a + $b)
difference=$(expr $a - $b)
product=$(expr $a \* $b)  # 注意乘法需要转义
quotient=$(expr $a / $b)
remainder=$(expr $a % $b)
​
# 输出结果
echo "Sum: $sum"
echo "Difference: $difference"
echo "Product: $product"
echo "Quotient: $quotient"
echo "Remainder: $remainder"

3. 变量拼接

变量拼接是将多个变量或字符串组合成一个单一的字符串。

#!/bin/bash
​
first_name="John"
last_name="Doe"
​
# 变量拼接
full_name="${first_name} ${last_name}"
​
echo "Full Name: $full_name"

4. 条件判断结合变量

条件判断经常与变量结合使用,以控制脚本的流程。

#!/bin/bash
​
num=25
​
if [ $num -gt 20 ]; thenecho "Number is greater than 20"
elseecho "Number is not greater than 20"
fi
http://www.lryc.cn/news/490303.html

相关文章:

  • DFT专家分析scan insertion时使用EDT的策略
  • Apple Vision Pro开发003-PolySpatial2.0新建项目
  • 分公司如何纳税
  • 在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
  • 深度优先搜索(dfs)题目合集
  • 性能监控利器:Ubuntu 22.04 上的 Zabbix 安装与配置指南
  • 性能测试的宏观分析:全面提升系统表现的关键
  • ctfshow
  • 【分享一个vue指令】鼠标放置提示指令v-tooltip
  • 掌握 Spring 事务管理:深入理解 @Transactional 注解
  • 字符三角形
  • 【LLM】一文学会SPPO
  • 如何通过ChatGPT提高自己的编程水平
  • NVR管理平台EasyNVR多品牌NVR管理工具的流媒体视频融合与汇聚管理方案
  • python之使用django框架开发web项目
  • ChatGPT 桌面版发布了,如何安装?
  • ubuntu 配置 多个 git 客户端 账户
  • React Native的界面与交互
  • autogen+ollama+litellm实现本地部署多代理智能体
  • InstantStyle容器构建指南
  • 百度主动推送可以提升抓取,它能提升索引量吗?
  • A045-基于spring boot的个人博客系统的设计与实现
  • JavaEE 【知识改变命运】02 多线程(1)
  • Pytorch使用手册-Transforms(专题四)
  • 【Android】ARouter的使用及源码解析
  • ValueError: bbox_params must be specified for bbox transformations
  • 挂壁式空气净化器哪个品牌的质量好?排名top3优秀产品测评分析
  • 钉钉数据如何高效集成到金蝶云星空系统
  • 躺平成长-腾讯云数据库(又消失了一次)
  • 初学 flutter 问题记录