打开新终端时二元运算符预期消息

打开新终端时二元运算符预期消息

我使用 Lubuntu 16.04

今天早上,每当我打开一个新终端时,我都会在终端中收到此消息bash: [: /home/timi95/workspace/WEB_TECHNOLOGIES/Angular: binary operator expected ,我不确定出了什么问题,我尝试了 tset、reset、sudo 更新等。

在指定的路径中甚至不存在名为“Angular”的文件或文件夹。

关于可能发生什么事情或如何解决此问题有任何线索吗?

除了更新之外,我记得安装的最后一件事是 electron-forge。我当时正在考虑跨平台桌面应用工具。你认为这与此有什么关系吗?

答案1

在您的错误信息中您有

/home/timi95/workspace/WEB_TECHNOLOGIES/Angular

然而在评论中你提到了这句话

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

Angular注意和之间的空格projects。这是问题的核心。

[命令中(是的,这是一个命令,也称为test,而不仅仅是一个括号),-f操作符期望它后面有一个参数。空格使得该行看起来好像后面有两个参数-f。因此,应该通过引用路径或使用反斜杠转义空格来修复此问题,如下所示

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

命令行中的空格用作单词分隔符,如果未对空格进行转义或加引号,shell 会将该行视为比您预期的更多的单词。除此之外,这也是您应该对变量加引号的原因之一 - 如果不加双引号,IFS将应用空格、换行符或制表符进行单词拆分(因为这些是 shell 进行单词拆分时参考的变量的默认值)。

相关内容