Linux中变量#,@,0,1,2,*,$$,$?的意义及其在日常工作中的应用

其中每个元素都是一个独立传递给脚本或函数的命令行参数,0、1 和 2 变量这三个变量分别代表脚本名称、标准输入和标准错误。本文目录导读:1、# 变量2、@ 变量3、0、1 和 2 变量4、* 变量5、$$ 变量6、$? 变量

创新互联公司从2013年开始,先为苍溪等服务建站,苍溪等地企业,进行企业商务咨询服务。为苍溪企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

在Linux系统中,变量是非常重要而且广泛使用的概念。它们可以存储不同类型的数据,并且能够帮助我们更加方便地操作和处理数据。本文将会介绍一些常见的变量,包括#、@、0、1、2、*、$$和$?,并讨论这些变量在日常工作中的实际应用。

# 变量

# 变量代表命令行参数个数(不包括脚本名称)。例如,在执行以下命令时:

```

./myscript.sh arg1 arg2 arg3

那么 # 将会返回 3 ,因为有三个参数传递给了脚本。

这对于编写具有可扩展性和灵活性的脚本非常重要。通过检查 # 的值,您可以根据需要选择特定数量或所有参数进行操作。

@ 变量

@ 变量代表一个数组,其中每个元素都是一个独立传递给脚本或函数的命令行参数。例如,在上述示例中,

echo $@

将输出 "arg1 arg2 arg3" 。 您还可以使用循环遍历 @ 数组来执行某些任务。

0、1 和 2 变量

这三个变量分别代表脚本名称、标准输入和标准错误。例如:

echo $0 # 输出脚本名称

echo "Input: $(cat)" # 读取并输出标准输入echo "Error: $(ls non_existent_file 2

&1)" # 捕获并输出标准错误

* 变量

* 变量是一个包含所有命令行参数的字符串,每个参数用空格分隔。例如,在上面的示例中,

echo $*

将输出 "arg1 arg2 arg3"。您可以使用 * 来执行一些字符串操作,如拼接或替换。

$$ 变量

$$ 变量代表当前正在运行的进程 ID。它非常有用,因为在编写具有多个实例或需要跟踪特定进程时,您可以轻松地确定该进程的 PID。

$? 变量

$?变量代表最近执行命令的退出状态码(返回值)。成功完成的命令通常会返回“0”,而失败则会返回非零值以指示错误原因。

现在我们来看看这些变量在日常工作中的应用。

假设你要编写一个 Bash 脚本来备份你重要文件夹里面所有数据,并将其压缩到 tar 文件中进行存储。在这个脚本中,您需要使用许多变量来管理和操作数据。

例如,您可以使用 # 变量来检查用户是否输入了正确数量的参数。如果没有,则输出一个错误消息并退出脚本:

if [ $# -ne 1 ]; then

echo "Usage: $0 folder_path"

exit 1

fi

接下来,您可以使用 @ 数组遍历所有传递给脚本的文件夹,并将它们添加到 tar 文件中:

for folder in "$@"; do

tar -cvzf "${folder}.tar.gz" "$folder"

done

然后,在备份完成后,您可以检查 $? 变量以确定命令是否成功执行(即返回状态码为“0”)或失败(非零值)。如果出现错误,则输出相应的错误消息:

if [ $? -eq 0 ]; then

echo "Backup completed successfully."

else

echo "Backup failed. Please try again later."

总结

文章标题:Linux中变量#,@,0,1,2,*,$$,$?的意义及其在日常工作中的应用
文章网址:http://www.shufengxianlan.com/qtweb/news8/253508.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联