博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
阅读量:6684 次
发布时间:2019-06-25

本文共 772 字,大约阅读时间需要 2 分钟。

hot3.png

我们先写一个简单的脚本,执行以后再解释各个变量的意义
 
# touch variable
# vi variable
 
脚本内容如下:
 
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"
保存退出
 
赋予脚本执行权限
 
# chmod +x variable
 
执行脚本
 
# ./variable aa bb
number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0
 
通过显示结果可以看到:
 
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

退出状态及其含义

状态值                                       含义

0                                 表示运行成功,程序执行未遇到任何问题

1-125                           表示运行失败,脚本命令、系统命令错误或参数传递错误

126                              找到了命令但无法执行

127                              未找到要运行的命令

>128                            命令被系统强行结束

转载于:https://my.oschina.net/heguangdong/blog/130828

你可能感兴趣的文章
JAVA数组和面向对象
查看>>
NVisionXR_iOS教程四 —— 在立方体上贴材质
查看>>
Microsoft Visual C++ Runtime library not enough space for thread data
查看>>
Centos 7 ntp时间服务器搭建
查看>>
电压电流采集模块,温湿度采集,称重模块,变送器,adc模数转换模块
查看>>
RAID和LVM
查看>>
学hadoop需要什么基础
查看>>
2019北京物联网智慧城市大数据博览会开启中国之路
查看>>
华为云网络服务两场景
查看>>
将 Desktop Central 与帮助台和 OS Deployer 集成
查看>>
技巧分享:caj怎么转化为pdf
查看>>
WebPack牛刀小试
查看>>
技巧: iPhone玩游戏手机发烫?有妙招
查看>>
标准W3C盒子模型和IE盒子模型CSS布局经典盒子模型(转)
查看>>
SQL Server 2008高可用×××介绍
查看>>
STP收敛
查看>>
VirtualBox无法进入Win8PE的桌面
查看>>
Cisco3550 交换机 端口限速
查看>>
Linux卸载系统自带的httpd的方法
查看>>
《Oracle从入门到精通》读书笔记第十五章 Oracle数据备份与恢复之二
查看>>