web-dev-qa-db-ja.com

Binary Operatorは、新しいターミナルを開くときにメッセージを予期しました

私はLubuntu 16.04を使用しています

今朝、私は新しいターミナルを開くたびにターミナルでこのメッセージを受け取り始めましたbash: [: /home/timi95/workspace/WEB_TECHNOLOGIES/Angular: binary operator expected、何が問題なのかわからないので、tset、reset、sudoの更新などを試しました。

指定されたパスに「Angular」と呼ばれるファイルまたはフォルダーも存在しません。

何が起こっているのか、またはこれを修正する方法についての手がかりはありますか?

アップデート以外にインストールを覚えている最後のことは、electro-forgeでした。クロスプラットフォームのデスクトップアプリツールを検討していました。これは何か関係があると思いますか?

1
timi95

あなたのエラーメッセージには

/home/timi95/workspace/WEB_TECHNOLOGIES/Angular

しかしコメントであなたは行を述べました

/home/timi95/workspace/WEB_TECHNOLOGIES/Angular projects/test-forge-project/node_modules/tabtab/.completions/electron-forge.bash

Angularprojectsの間のスペースに注意してください。これが問題の中核です。

[コマンドでは(そして、はい、これはtestとしても知られているコマンドであり、単なるブラケットではありません)、-f演算子はその後に単一の引数を期待します。スペースにより、-fの後に2つの引数があるかのように線が表示されます。したがって、パスを引用するか、バックスラッシュでスペースをエスケープすることにより、問題を修正する必要があります

/home/timi95/workspace/WEB_TECHNOLOGIES/Angular\ projects/test-forge-project/node_modules/tabtab/.completions/electron-forge.bash

コマンドラインのスペースは単語の区切り文字として機能し、エスケープまたは引用符で囲まれていない場合、シェルは行を意図したよりも多くの単語として扱います。特に、これは変数を引用する理由の1つです-二重引用符なしで空白、改行、またはタブでのWord分割(シェルがWord分割のために参照するIFS変数のデフォルト値であるため) ) 適用されます。

2