#!/bin/bash
$myval=/home
ls $mval <- unexpected misspelling
$mval
lsコマンドが定義されていないために実行されるのを防ぐ方法はありますか?
ノートタイプミスがあるため、存在するかどうかを確認できません。設定できる追加のプロパティを探しています。
答え1
set -u
設定されていない変数を拡張しようとすると、中断オプションを使用してこれを実行できます。ただし、これは$myval=/home
有効な構文ではないため、変数は設定されません。を削除する必要があります$
。
#!/bin/bash
set -u
myval=/home
ls "$mval"
- ゆう
設定されていない変数と特殊パラメータ「@」、「*」以外のパラメータは、パラメータ拡張時にエラーとして扱われます。エラーメッセージが標準エラーに書き込まれ、非対話型シェルが終了します。