为什么没有这样的文件或directory_profile?

时间:2018-09-14 00:07:28

标签: bash shell windows-10 sh mobaxterm

我正在使用Windows和MobaXterm。

我在async componentDidMount() { // loading objects from realm is a synchronous task that block the main // process, in order not to freeze the ui, we trigger the load after // the interactions and screen loading is done this.getRealmDataHandle = InteractionManager.runAfterInteractions(() => this.getRealmData()) } componentWillUnmount() { if (this.getRealmDataHandle !== undefined) { this.getRealmDataHandle.cancel() } } 目录和以下行中创建了.bash_profile文件

TypeError: Expected int32, got 8.0 of type 'float' instead.

是该文件中唯一的代码。

但是,当我尝试执行sbp时,出现错误。

enter image description here

这可以在我的Mac上使用,并且曾经可以在我的旧Windows计算机上使用(但是那台电脑受到水的损害,因此坏了)。为什么现在不起作用?

谢谢!

1 个答案:

答案 0 :(得分:4)

从错误消息乱码的方式来看,我很确定您创建的.bash_profile文件具有DOS / Windows样式的行尾,由回车符和换行符组成。 Unix工具期望unix样式的行尾仅包含换行符。如果他们看到DOS / Windows风格的结尾,他们会将回车符视为该行内容的一部分。在这种情况下,bash会将回车视为别名定义的一部分,因此会将文件名的一部分视为源文件名。尝试运行alias sbp | cat -vt来打印别名,其中显示了不可见的字符;我的猜测是它将打印alias sbp='source ~/.bash_profile^M'(其中^Mcat -vt代表回车的方式)。

解决方案:将文件转换为unix格式,然后切换到知道如何以unix格式保存的文本编辑器,或者更改当前编辑器中的设置以执行此操作。为了进行转换,有许多半标准工具,例如dos2unixfromdos。如果您没有这些,this answer还有其他选择。

顺便说一句,错误消息出现乱码的原因是CR被打印为错误消息的一部分,并且终端将其视为返回到行首的指令。然后,它将其余消息打印在消息开头的顶部。有点像这样:

-bash: /home/dir/path/.bash_profile
: No such file or directory

...但是第二行上印有第二行,因此显示为:

: No such file or directory_profile