在bash中启动别名时获取状态
我已经知道如何在bash脚本中使用别名。它们确实会被执行,但我不会在变量“Status”中返回结果。以下所有类型的启动别名都会在交互使用时返回结果,但无论是否使用“shopt-s expand_alias”,脚本中的“Status”都将保持为空:在bash中启动别名时获取状态,bash,Bash,我已经知道如何在bash脚本中使用别名。它们确实会被执行,但我不会在变量“Status”中返回结果。以下所有类型的启动别名都会在交互使用时返回结果,但无论是否使用“shopt-s expand_alias”,脚本中的“Status”都将保持为空: 有人对如何在bash脚本中获取变量“Status”的结果有一些提示和想法吗?反引号之间的命令,或者介于$(和)之间的命令。由shell扩展到命令输出。可以使用$检索退出状态?特殊变量 output=$(command ) # output=`c
有人对如何在bash脚本中获取变量“Status”的结果有一些提示和想法吗?反引号之间的命令,或者介于
$(
和)之间的命令。
由shell扩展到命令输出。可以使用$检索退出状态?特殊变量
output=$(command ) # output=`command ` #old syntax
status=$?
否则,可以将标准输出和错误重定向到文件
command 1> output_file 2> error_file
status=$?
此外,如果只需要退出状态success,则可以使用逻辑运算符检查状态(退出状态==0表示成功,逻辑值为true)
反引号之间的命令,或
$(
和)
之间的命令,由shell扩展为命令的输出。可以使用$检索退出状态?特殊变量
output=$(command ) # output=`command ` #old syntax
status=$?
否则,可以将标准输出和错误重定向到文件
command 1> output_file 2> error_file
status=$?
此外,如果只需要退出状态success,则可以使用逻辑运算符检查状态(退出状态==0表示成功,逻辑值为true)
谢谢你的帮助和提示。主要问题是扩展别名(如start_ETAP-Cluster)无法正常工作。因此,在脚本中使用以下内容确实有帮助:
shopt -s expand_aliases
source ~/.bash_aliases
在我的代码中使用$Status是有误导性的,我将它改为$JobID,这更好地反映了我的需求。我在别名中使用web钩子,它返回一个带有作业id的JSON对象?同样有效。现在,代码在脚本中执行其工作:
$ JobID=$( ${BASH_ALIASES[start_ETAP-Cluster]} 2>/dev/null )
$ echo $JobID
{"JobIds":["8c54392c-363c-4e28-827e-a1384da7fd37"]}
下一步是将web钩子调用从别名移动到bash函数,这将给我比别名更大的灵活性。感谢您的帮助和提示。主要问题是扩展别名(如start_ETAP-Cluster)无法正常工作。因此,在脚本中使用以下内容确实有帮助:
shopt -s expand_aliases
source ~/.bash_aliases
在我的代码中使用$Status是有误导性的,我将它改为$JobID,这更好地反映了我的需求。我在别名中使用web钩子,它返回一个带有作业id的JSON对象?同样有效。现在,代码在脚本中执行其工作:
$ JobID=$( ${BASH_ALIASES[start_ETAP-Cluster]} 2>/dev/null )
$ echo $JobID
{"JobIds":["8c54392c-363c-4e28-827e-a1384da7fd37"]}
下一步是将web钩子调用从别名移动到bash函数,这将比别名更灵活。为什么要用java、python、r和scala标记它?是否要获取命令any_var=
start_ETAP-TestCluster 2>/dev/null
的退出状态?如果是,则可以使用status=$?在您的命令之后。为什么要用java、python、r和scala标记此命令?是否要获取命令的退出状态any\u var=start\u ETAP-TestCluster 2>/dev/null
?如果是,则可以使用status=$?听从你的命令。