📜  Shell 脚本 - 默认 Shell 变量值

📅  最后修改于: 2022-05-13 01:57:26.940000             🧑  作者: Mango

Shell 脚本 - 默认 Shell 变量值

shell 为我们提供了 Unix 系统的接口。在使用操作系统时,我们间接与 shell 交互。在 Linux 分发系统上,每次我们使用终端时,我们都会与 shell 交互。 shell 的工作是解释或分析用户给出的 Unix 命令。 shell 接受来自用户的命令并将它们转换为内核可以理解的形式。换句话说,它充当用户和操作系统内核单元之间的中介。

本文重点介绍默认的 shell 变量值。

设置默认 shell 变量值

未定义变量:在声明时未定义的变量称为未定义变量。

例子:

在这个程序中,我们打印了两个未定义的变量; “我的变量 1” 和“myVariable2”。在输出中,没有打印任何内容,因为这些变量是未定义的。简单来说,它们没有任何初始值。

// Shell script to illustrate undefined variables

#!/bin/sh

// Printing undefined variables
echo $myVariable1
echo $myVariable2
  

输出:

未定义的变量

方法一:

在回显命令期间,我们可以在变量名后面的赋值运算符的帮助下,在 shell 脚本中设置具有默认值或初始值的变量。然后,我们要为变量分配的默认值位于赋值运算符之后。下面是设置默认值的语法。

echo ${myVariable1= value1}
echo ${myVariable2= value2}

这里,myVariable1 和 myVariable2 是变量名,value1 和 value2 是对应的默认值

如果“myVariable1”和“myVariable2”未初始化,则分别替换默认值“value1”和“value2”。否则,替换“value1”和“value2”的初始化值。

例子:

在这个程序中,除了“myVariable6”之外,我们定义了所有变量。简而言之,“myVariable6”已初始化,而其他变量未定义。因此,myVariable6 具有在声明时初始化的值,而其他变量具有默认值。

# Shell script to illustrate the working
# of default variable value

#!/bin/sh

# Initializing "myVariable6"
myVariable6=25

# Printing variables
echo "myVariable1:" ${myVariable1=10}
echo "myVariable2:" ${myVariable2=1.123}
echo "myVariable3:" ${myVariable3='A'}
echo "myVariable4:" ${myVariable4=true}
echo "myVariable5:" ${myVariable5="GeeksforGeeks"}
echo "myVariable6:" ${myVariable6=100}

输出:

方法二:

Bash 参数扩展技术也用于为变量分配默认值。在此方法中,变量在 echo 命令期间也被分配了默认值。但在这种情况下,冒号和破折号 (:-) 紧跟在变量名之后。然后,我们要为变量分配的默认值位于这些符号之后。我们还可以借助以下语法在 shell 脚本中设置具有默认值或初始值的变量,

echo ${myVariable1:- value1}
echo ${myVariable2:- value2}

这里myVariable1和myVariable2是变量名,value1和value2是对应的默认值

如果“myVariable1”和“myVariable2”之前未初始化,则分别替换“value1”和“value2”的扩展。否则,代入“value1”和“value2”的初始化值。

例子:

在这个程序中,除了“myVariable6”之外,我们定义了所有变量。简而言之,“myVariable6”已初始化,而其他变量未定义。因此,“myVariable6”具有在声明时初始化的值,而其他变量具有默认值。

# Shell script to illustrate the working
# of default variable value

#!/bin/sh

# Initializing "myVariable6"
myVariable6=25

# Printing variables
echo "myVariable1:" ${myVariable1:-10}
echo "myVariable2:" ${myVariable2:-1.123}
echo "myVariable3:" ${myVariable3:-'A'}
echo "myVariable4:" ${myVariable4:-true}
echo "myVariable5:" ${myVariable5:-"GeeksforGeeks"}
echo "myVariable6:" ${myVariable6:-100}

输出: