ae做网站导航,上海网站建设 找思创网络,做网站设计所遇到的问题,安徽合肥制作网站公司1.6 Shell 变量的类型
Shell 变量分为四类#xff0c;分别是
自定义变量环境变量位置变量预定义变量
根据工作要求临时定义的变量称为自定义变量#xff1b;
环境变量一般是指用 export 内置命令导出的变量#xff0c;用于定义 Shell 的运行环境#xff0c;保证 Shell …1.6 Shell 变量的类型
Shell 变量分为四类分别是
自定义变量环境变量位置变量预定义变量
根据工作要求临时定义的变量称为自定义变量
环境变量一般是指用 export 内置命令导出的变量用于定义 Shell 的运行环境保证 Shell 命令正确执行如 $0、$1、$#;
从命令行、函数或脚本执行等传递参数时$0、$1 称为特殊位置变量
预定义变量是在 bashLinux 系统的默认 Shell中已有的变量可以直接使用如 **$、$***等。
1.6.1 自定义变量
自定义变量可以理解为局部变量或普通变量只能在创建它们的 Shell 函数或 Shell 脚本中使用。
自定义变量的说明如下
自定义变量表的说明定义自定义变量变量名变量值变量名必须以字母或下画线开头区分大小写。如 IP1192.168.2.115使用自定义变量$变量名查看自定义变量echo $变量名 set(所有变量包括自定义变量和环境变量)取消自定义变量unset 变量名自定义变量作用范围仅在当前 Shell 中有效
1.6.2 环境变量
环境变量也可以称为全局变量可以在创建它们的 Shell 及其派生出来的任意子进程 Shell 中使用。
环境变量的说明如下
环境变量表说明定义环境变量使用 export 命令声明即可。例如export back_dir /home/backup 再如export back_dir 将自定义变量转换为环境变量使用环境变量$变量名 或 ${变量名}查看环境变量echo $变量名或 env 例如env取消环境变量unset 变量名环境变量作用范围在当前 Shell 和子 Shell 中有效
1.6.3 位置变量
在 Shell 中存在一些位置变量。位置变量用于在命令行函数或脚本中传递参数其变量名不用自己定义其作用也是固定的。执行脚本时通过在脚本后面给出具体的参数多个参数用空格隔开对应的位置变量进行赋值。
$0 代表命令本身$1~$9 代表接收的第 1 ~ 9 个参数$10 以上需要用 {} 括起来如 ${10} 代表接收的第 10 个参数。
1.6.4 预定义变量
预定义变量在 Shell 中可以直接使用位置变量也是预定义变量的一种。 预定义变量的说明如下 预定义变量说明表$0脚本名$*所有参数列表将所有参数当作一个单词。$所有参数列表每个参数视为一个独立的字符串。$#参数的个数$$当前进程的 PID$!上一个后台进程的 PID$?上一个命令的返回值0 表示成功 预定义变量示例脚本如下 #!/bin/bash# 打印脚本名
echo 脚本名: \$0# 打印所有参数作为一个单词
echo 所有参数作为一个单词\$*: $*# 打印每个参数作为一个独立的字符串
echo 每个参数作为一个独立字符串\$: $# 打印参数个数
echo 参数个数\$#: $## 打印当前进程ID
echo 当前进程ID\$$: $$# 打印上一个后台进程的进程ID
echo 上一个后台进程的进程ID\$!: $!# 打印上一个命令的退出状态
echo 上一个命令的退出状态\$?: $?
1.7. Shell 变量的赋值
Shell 变量赋值方式有五种
直接赋值从键盘读入赋值使用命令行参数赋值利用命令的输出结果赋值从文件中读入数据赋值 直接赋值也就是定义变量 从键盘读入赋值是指将 bash 的内置命令 read 读入的内容赋值给变量 在命令行 Shell 下输入的参数内容称为使用命令行参数赋值 利用命令的输出结果赋值是指将命令行的执行结果赋值给变量 从文件中读数据赋值就是把文件内容赋值给变量 1.7.1 直接赋值
在 Shell 中当第一次使用某变量名时实际上就已经给变量赋值了。
直接赋值的格式为 变量名变量值如nametinyun。为了避免歧义直接赋值时禁止在等号两边添加空格这跟常见的编程语言有所不同。
直接赋值举例如下
a3上面语句中的 不是数学中的等号而是赋值运算符它的作用是将复制运算符右侧的值赋给左侧其中右侧的 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# 使用反引号将命令的输出结果赋值给变量
outputls -l
echo 使用反引号赋值的结果
echo $output# 使用 $() 将命令的输出结果赋值给变量
output2$(pwd)
echo 使用 $变量名 赋值的结果
echo $output2
1.7.5 从文件中读入
import pandas as pd# 读取 Excel 文件
df pd.read_excel(example.xlsx, sheet_nameSheet1)# 打开一个新的文本文件准备写入数据
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 文件)