Shell脚本中var=$?、点命令及函数参数赋值含义问询
Ksh脚本片段各语句含义解析
var=$?$?是Ksh(及多数shell)的特殊变量,代表上一条执行命令的退出状态码:- 状态码为
0时,说明上一条命令执行成功; - 非
0值则表示命令执行失败(不同数值对应不同错误类型)。
这条语句的作用是把上一条命令的退出结果保存到自定义变量var中,方便后续脚本判断或复用该结果。
- 状态码为
. ${FILE_NAME}
这里的.是shell的source命令(Ksh中与source功能完全等价),作用是读取并执行指定文件中的shell代码,相当于把目标文件的内容直接嵌入当前脚本的对应位置执行。- 和用
sh 文件路径启动子shell执行脚本不同,.命令执行的内容会直接在当前脚本的环境中生效,目标文件里定义的变量、函数都能被当前脚本直接使用。
脚本里的. ${HOME_PATH}/script/abc.sh也是同样逻辑,用于加载外部的abc.sh脚本文件。
- 和用
函数
func_start()内的JOB_ID=$1、FLAG=$2、NODES=$3
在Ksh函数中,$1、$2、$3是位置参数变量,分别对应调用函数时传入的第1、第2、第3个参数:- 比如执行
func_start 456 N 3时,JOB_ID会被赋值为456,FLAG为N,NODES为3;
这种写法是把无意义的位置参数映射为有语义的变量名,让代码更易读,后续在函数内就能通过这些变量名使用传入的参数值。
- 比如执行
内容的提问来源于stack exchange,提问作者user8487380
相关产品推荐
相关产品推荐

