我正在编写一个简单的 bash 脚本
#!/bin/bash
ls xyzzy.345 > /dev/null 2>&1
status =' echo $?'
echo "status is $status"
Run Code Online (Sandbox Code Playgroud)
它找到文件xyzzy.345
并将结果记录到/dev/null
. 但是当涉及到 line 时 status =' echo $?'
,我收到此错误:
status: Unknown job: = echo $?
Run Code Online (Sandbox Code Playgroud)
但echo $?
在终端中被识别。
有谁能够帮助我?我的操作系统是 ubuntu 12.04 LTS
Mic*_*mer 15
status
和之间有一个额外的空间=
。Bash变量赋值需要在名称和=
符号之间没有空格:
status='echo $?'
Run Code Online (Sandbox Code Playgroud)
你写的是status
用单个参数调用命令=' echo $?'
。
说了这么多,我想你可能想写的是:
status=$?
Run Code Online (Sandbox Code Playgroud)
将 的值存储$?
到status
变量中。
如果您的实际代码稍微复杂一点,并且您想运行命令并保存值,请使用以下任一方法:
status=`echo "$?"`
status=$(echo "$?")
Run Code Online (Sandbox Code Playgroud)