当变量未定义时如何防止bash运行

当变量未定义时如何防止bash运行
#!/bin/bash       
$myval=/home
ls $mval <- unexpected misspelling

有没有办法阻止 ls 命令执行,因为$mval未定义?

笔记无法检查其是否存在,因为这是一个拼写错误。我正在寻找更多可以设置的属性。

答案1

您可以使用set -u如果您尝试扩展未设置的变量则中止的选项来执行此操作。但请注意,这$myval=/home不是有效的语法,并且不会设置变量。您需要删除$.

#!/bin/bash 

set -u
     
myval=/home
ls "$mval"

-u

执行参数扩展时,将除特殊参数“@”或“*”之外的未设置变量和参数视为错误。错误消息将写入标准错误,并且非交互式 shell 将退出。

相关内容