#!/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 将退出。