路过的一个普通人

路过的一个普通人

1.6 Shell 变量的类型

Shell 变量分为四类,分别是

  • 自定义变量
  • 环境变量
  • 位置变量
  • 预定义变量

根据工作要求临时定义的变量称为自定义变量

环境变量一般是指用 export 内置命令导出的变量,用于定义 Shell 的运行环境,保证 Shell 命令正确执行,如 $0、$1、$#;

从命令行、函数或脚本执行等传递参数时,$0、$1 称为特殊位置变量

预定义变量是在 bashLinux 系统的默认 Shell)中已有的变量,可以直接使用,如 **$@、$***等。

1.6.1 自定义变量

自定义变量可以理解为局部变量或普通变量,只能在创建它们的 Shell 函数或 Shell 脚本中使用。

自定义变量的说明如下:

1.6.2 环境变量

环境变量也可以称为全局变量,可以在创建它们的 Shell 及其派生出来的任意子进程 Shell 中使用。

环境变量的说明如下:

1.6.3 位置变量

在 Shell 中存在一些位置变量。位置变量用于在命令行,函数或脚本中传递参数,其变量名不用自己定义,其作用也是固定的。执行脚本时,通过在脚本后面给出具体的参数(多个参数用空格隔开)对应的位置变量进行赋值。

$0 代表命令本身,$1~$9 代表接收的第 1 ~ 9 个参数,$10 以上需要用 {} 括起来,如 ${10} 代表接收的第 10 个参数。

1.6.4 预定义变量

预定义变量在 Shell 中可以直接使用,位置变量也是预定义变量的一种。

  • 预定义变量的说明如下:

  • 预定义变量示例脚本如下:

    #!/bin/bash
    
    # 打印脚本名
    echo "脚本名: \$0"
    
    # 打印所有参数作为一个单词
    echo "所有参数作为一个单词(\$*): $*"
    
    # 打印每个参数作为一个独立的字符串
    echo "每个参数作为一个独立字符串(\$@): $@"
    
    # 打印参数个数
    echo "参数个数(\$#): $#"
    
    # 打印当前进程ID
    echo "当前进程ID(\$$): $$"
    
    # 打印上一个后台进程的进程ID
    echo "上一个后台进程的进程ID(\$!): $!"
    
    # 打印上一个命令的退出状态
    echo "上一个命令的退出状态(\$?): $?"
    
    

1.7. Shell 变量的赋值

Shell 变量赋值方式有五种:

  • 直接赋值
  • 从键盘读入赋值
  • 使用命令行参数赋值
  • 利用命令的输出结果赋值
  • 从文件中读入数据赋值

1.7.1 直接赋值

在 Shell 中,当第一次使用某变量名时,实际上就已经给变量赋值了。

直接赋值的格式为 变量名=变量值,如,name=tinyun。为了避免歧义,直接赋值时禁止在等号两边添加空格,这跟常见的编程语言有所不同。

直接赋值举例如下:

a=3

上面语句中的 = 不是数学中的等号,而是赋值运算符,它的作用是将复制运算符右侧的值赋给左侧,其中,右侧的 3 就是变量的值,左侧的 a 就是变量名,a 被赋值后,a 就代表了 3.

1.7.2 从键盘读入赋值

在 Shell 脚本中, Shell 变量可以通过从键盘读入输入的内容来赋值。

命令格式为:

read -p [提示信息][变量名]

示例脚本如下:

#!/bin/bash

# 使用 -p 参数提示用户输入姓名并存储到变量中
read -p "请输入您的姓名:" name

# 使用 -p 参数提示用户输入年龄并存储到变量中
read -p "请输入您的年龄:" age

# 输出用户输入的姓名和年龄
echo "您输入的姓名是:$name"
echo "您输入的年龄是:$age"

1.7.3 使用命令行参数赋值

使用命令行参数赋值是直接在命令后面跟参数,系统用 $1 来调用第一个参数,用 $2 调用第二个参数,这种赋值方法适用于参数经常变化且不需要交互的情况。

示例脚本如下:

#!/bin/bash

# 输出第一个和第二个命令行参数
echo "第一个参数是:\$1"
echo "第二个参数是:\$2"

1.7.4 利用命令的输出结果赋值

在 Shell 程序中,可以将一个命令的输出结果当作变量的值,不过需要在赋值语句中使用反向单引号。

示例脚本如下:

#!/bin/bash

# 使用反引号将命令的输出结果赋值给变量
output=`ls -l`
echo "使用反引号赋值的结果:"
echo "$output"

# 使用 $() 将命令的输出结果赋值给变量
output2=$(pwd)
echo "使用 `$变量名` 赋值的结果:"
echo "$output2"

1.7.5 从文件中读入

import pandas as pd

# 读取 Excel 文件
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')

# 打开一个新的文本文件,准备写入数据
with open('output.txt', 'w') as file:
    # 遍历 DataFrame 的每一行,将每行的数据写入文件
    for index, row in df.iterrows():
        file.write(','.join(map(str, row.values)))
        file.write('\n')

print("数据已成功写入 output.txt 文件")

06-17 09:30