No.3ベストアンサー
- 回答日時:
ATALKD_RUN='-e'
だった場合
if [ "${ATALKD_RUN}" != "no" ]; then
は
if [ -e != no ]; then
になります。
[ コマンドの実装によっては、 -e != (!=というファイルが存在する) と no (余分な引数) と解釈されてエラーになってしまいます。
また、 ATALKD_RUN= と空の場合は if [ != no ]; then と展開されて、!=の左辺が無い、ということもあったそうです。
# 手許のtestコマンドでは、いずれも期待通りに 文字列比較してくれました。
xを付けると、
ATALKD_RUN='-e' → if [ x-e != xno ]; then
ATALKD_RUN= → if [ x != xno ]; then
と、期待通りに動作してくれるようになる、ということです。
ありがとうございます。
コマンドオプションとみなされる他、ダブルクオートで括った空文字列をまともに文字列と見なさい系もあり得るということでしょうか。
実際に実験もしていただいたということでベストアンサーにさせていただきます。
No.2
- 回答日時:
変数の値がどんな値かわからないとき、例えば、VAR="-f" だったりすると、
[ "$VAR" != no ] が、 [ -f != no ] となって、 -f がtestコマンドの演算子と見なされてしまうんじゃないかという心配からのようです。x を付けておけば、[ x-f != xno ] と演算子に見なされるおそれがない。
ただ、実際には、オペランドの個数などで判断されてこういう場合も(xをつけなくても)大丈夫です。
(昔はだめだったのかも)
-a や -o や ! がからんで複雑なケースだと x なしだとだめなケースもありそうです。
ありがとうございます。
なるほど、万一testコマンドのオプションとみなされる文字列が入っても期待外れの動作をしないための自衛策だったわけですね。実経験に基づくtipsのようでなかなか興味深い話です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- TOEFL・TOEIC・英語検定 教本と辞書で意味が違いますか? 1 2022/11/18 11:54
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) VBAのifで 4 2023/05/16 14:21
- Visual Basic(VBA) vba 最大値 条件分岐 4 2022/12/10 10:20
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Windows 10 bash の -z オプションがうまく動作しない原因を教えて下さい。 4 2023/03/22 18:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
DOSコマンドでのワイルドカ...
-
cactiでグラフが表示されない
-
loggerコマンドでkern.warning...
-
rcpコマンドについて、教えて!
-
AIX ksh利用 grep 検索で マ...
-
Linux shell ftp 転送 エラー制御
-
cron登録不可(´・ω・`)
-
FTPを途中で切断した後。
-
telnet,rlogin,rshの違いってな...
-
ログイン、ログアウト時にコマ...
-
属性変更できないです。
-
FreeBSD でマシンスペックを知る
-
shell の time コマンドの結果...
-
コマンド履歴のhistoryの記録数
-
redhatにて、論理ボリュームのd...
-
Warning: Output is not to
-
Viで書き込もうとすると、保...
-
FTPコマンドの戻り値について
-
書き込み権限が無いためコピー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
DOSコマンドでのワイルドカ...
-
Illustratorのデータをまとめて...
-
rcpコマンドについて、教えて!
-
属性変更できないです。
-
AIX ksh利用 grep 検索で マ...
-
Windows10のRegSys32に登録され...
-
Linux shell ftp 転送 エラー制御
-
IBM漢字コードのSJIS変...
-
FTP接続中のコマンド実行結果を...
-
cactiでグラフが表示されない
-
minicomでよく使うコマンド文字...
-
【ターミナル】MacBookにディー...
-
UNIXシェル内での日付計算
-
lsコマンドで表示するファイル...
-
telnet,rlogin,rshの違いってな...
-
残り日数のカウント方法について
-
DOSのAUTOEXEC.BATの書き方、等
-
GNOME端末の起動 及び コマンド...
-
別名でリンク先を保存。
おすすめ情報