Shell 预定义变量 ($0、$$、$?、$#、$* 含义)

简介: Shell 预定义变量 ($0、$$、$?、$#、$* 含义)

什么是预定义变量?

  • 可以直接使用这些变量。
  • 不能直接为这些变量赋值。
变量名 含义
$0 当前所在的进程或脚本名
$$ 当前运行进程的 PID
$? 获得上一条命令的执行状态,跟上上条命令无关,0 表示正常,1其他值 表示异常
$# 已加载的位置变量的个数,也就是执行脚本时,后面跟的参数个数
$* 所有位置变量的值,也就是执行脚本时,后面跟的参数

  • $? 举例:
// 运行正常
$ ls
test.sh
$ echo $?
0
// 运行异常
$ ls dzm.txt
ls: dzm.txt: No such file or directory
$ echo $?
1
  • 综合举例
# 脚本内容
echo $0
echo $$
echo $?
echo $#
echo $*
$ sh test.sh aa bb cc
test.sh
33616
0
3
aa bb cc
相关文章
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
150 0
|
6天前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
59 2
|
12月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
102 1
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
Java Shell Linux
Shell 变量设置
Shell设置变量
182 5
|
Shell
[shell]在curl测试的data参数中引用变量
[shell]在curl测试的data参数中引用变量
483 1
|
分布式计算 大数据 Shell
MaxCompute产品使用合集之odps shell如何将ech变量的结果集合写入文件,并且指定服务器的位置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
124 10
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
94 0
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量