Linux脚本中 指令返回值得获取,以及参数等获取

在写脚本时,经常遇到这样的问题:

如何获取当前进程号,脚本执行过的命令的进程号?

如何获取当前时间?

如何得到参数个数?

如何得到脚本中各命令的返回信息?。。。。

其实这些信息都能轻松从shell预定义的一些特殊变量获得,下面总结了一些常用的。

 

复制代码
特殊的shell变量:

#获取当前执行的shell脚本的文件名
$0


#获取当前执行的shell脚本的第n个参数值,n=1..9
$n  

#获取当前shell的所有参数$1 $2 $3 …
$*  

# 注意与$#的区别
#获取当前shell命令行中参数的 总个数
$#  

#获取当前shell的进程号(PID)
$$  

#执行上一个指令的PID
$!

#获取执行的上一个指令的返回值(也就是main()的返回值,通常0 为成功, 非0零为失败)
$?  

#这个程序的所有参数 “$1″ “$2″ “$3″ “…”
$@
复制代码

案例1:

vim shell.sh

写入脚本内容:

复制代码
echo $0
echo $1
echo $n
echo $#

echo $*
echo $?
echo $@
echo $!
echo $$
复制代码

执行脚本:sh shell.sh add test

 

案例2:

复制代码
1.获取shell函数调用的返回值:

#!/bin/sh 
info()  
{  
   cat jlb.sh
}  
res=`info`
echo "state: "$?
echo "res: "${res}
复制代码

说明res=`info`这一行为调用函数info,里面的符号`不是单引號,而是Esc按键以下的那个。另外$?返回的为上一条命令的运行状态,不是返回值。

2、获取shell命令的返回值,原理同上,比如:


#!/bin/sh 

info=`cat jlb.sh`

echo "info: "${info}

 

posted @   苹果芒  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示