我正在使用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时,出现错误。
这可以在我的Mac上使用,并且曾经可以在我的旧Windows计算机上使用(但是那台电脑受到水的损害,因此坏了)。为什么现在不起作用?
谢谢!
答案 0 :(得分:4)
从错误消息乱码的方式来看,我很确定您创建的.bash_profile文件具有DOS / Windows样式的行尾,由回车符和换行符组成。 Unix工具期望unix样式的行尾仅包含换行符。如果他们看到DOS / Windows风格的结尾,他们会将回车符视为该行内容的一部分。在这种情况下,bash会将回车视为别名定义的一部分,因此会将文件名的一部分视为源文件名。尝试运行alias sbp | cat -vt
来打印别名,其中显示了不可见的字符;我的猜测是它将打印alias sbp='source ~/.bash_profile^M'
(其中^M
是cat -vt
代表回车的方式)。
解决方案:将文件转换为unix格式,然后切换到知道如何以unix格式保存的文本编辑器,或者更改当前编辑器中的设置以执行此操作。为了进行转换,有许多半标准工具,例如dos2unix
和fromdos
。如果您没有这些,this answer还有其他选择。
顺便说一句,错误消息出现乱码的原因是CR被打印为错误消息的一部分,并且终端将其视为返回到行首的指令。然后,它将其余消息打印在消息开头的顶部。有点像这样:
-bash: /home/dir/path/.bash_profile
: No such file or directory
...但是第二行上印有第二行,因此显示为:
: No such file or directory_profile