使用“$?”时bash 脚本中的表达式

使用“$?”时bash 脚本中的表达式

我正在写一个简单的 bash 脚本

#!/bin/bash

ls xyzzy.345 > /dev/null 2>&1
status =' echo $?'
echo "status is $status"

它找到该文件xyzzy.345并将结果记录到/dev/null.但是当涉及到该行时 status =' echo $?',我收到此错误:

status: Unknown job: = echo $?

echo $?在终端中被识别。

有谁能够帮助我?我的操作系统是 ubuntu 12.04 LTS

答案1

status和之间有一个额外的空格=。重击变量赋值名称和符号之间不需要有空格=

status='echo $?'

您所编写的是status使用单个参数调用命令=' echo $?'


综上所述,我认为您可能想写的是:

status=$?

它将 的值存储$?status变量中。

如果您的实际代码稍微复杂一些,并且您想要运行命令并保存值,请使用以下任一方法:

status=`echo "$?"`
status=$(echo "$?")

这些使用命令替换访问命令的输出。

相关内容