我正在使用 OS X El Capitan (10.11.3) 的 MacBook 上使用 Ruby 2.x 和 Rails 4.x,使用鱼壳,采用此页面上列出的集成:RVM -鱼壳(集成)
当执行各种命令如rvm version,rvm install ...,rvm use ...,rvm --default ...等,收到以下错误消息:
/var/folders/2w/zhgybz7d25s1gdy41qdxwp48001gfh/T/rvm.fish.Pqd0CuZRJW: shell_session_update: command not found
Run Code Online (Sandbox Code Playgroud)
快速 Google 搜索不会返回任何可以帮助我识别和/或解决问题的相关结果,因为它已经解决了我的许多其他开发设置问题。
我在rvm.fish函数文件中、.config/fish目录下以及$HOME/.rvm/bin/rvm主可执行文件中进行了快速文本搜索,但没有看到诸如shell_session_update在该文件中直接调用之类的命令。
有谁知道为什么会这样,我该如何解决?我是一个喜欢修复我面前的东西的人,所以只有我需要采取行动的东西出现在我面前,所以我想删除这个错误/警告信息。:)
PS 我试图安装和使用的特定 Ruby 版本 (2.0.0) 似乎运行正常,即使在同一个终端 (iTerm(2)) 会话中,无需重新启动它。我已经关闭了那个并创建了一个新的终端会话,并且在运行上述各种命令时仍然看到该消息出现。
我有一个批处理脚本,我基本上希望它向用户显示一个记事本窗口,其中打开了一个配置文件,供用户在每次运行脚本时进行编辑,并且我希望命令提示符等到该程序关闭才能继续执行,并运行使用该配置文件的程序。
我想这样做是因为我不想使用“set /P”命令样式在批处理脚本中获取用户输入,并且必须设置解析读取和写入到有许多值要检查的配置文件。
我相信在 Windows 上执行任何可执行程序时的标准行为是“exe”文件,它将在自己的进程中打开程序并立即控制回到脚本/命令提示符。对于“bat”和“cmd”脚本文件,它将执行脚本并等待直到控制权返回到第一个脚本或命令提示符。这应该是至少使用“CALL”命令调用另一个脚本或直接调用它时的行为。
现在在 Linux 上,我相信可执行内容的默认行为是可以没有扩展名的本机机器代码和“sh”文件之类的脚本,以阻塞方式执行,除非您指定与号(“&”)字符在输入线上的某个地方。
所以我试图在 Windows 上实现阻塞行为,因为它在 Linux 上更容易实现,并且希望关闭程序以触发原始脚本继续,或者将控制权返回到命令提示符。
这是我遇到问题的命令
username@computer /current/working/directory
$ dd if="$filename" bs=1 seek=10 count=10 conv=notrunc status=progress^C
0+0 records in
0+0 records out
0 bytes copied, 1.70242 s, 0.0 kB/s
Run Code Online (Sandbox Code Playgroud)
测试输出到文件审判(为了理智?)
username@computer /current/working/directory
$ dd if="$filename" bs=1 seek=10 count=10 conv=notrunc status=progress of=test
22+0 records in
22+0 records out
22 bytes copied, 0.0115305 s, 1.9 kB/s
Run Code Online (Sandbox Code Playgroud)
环境
username@computer /current/working/directory
$ echo $filename
somefile.ext
username@computer /current/working/directory
$ dd --version
dd (coreutils) 8.26
Packaged by Cygwin (8.26-1)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version …Run Code Online (Sandbox Code Playgroud)