到目前为止,我们正在使用 Bash 编写所有脚本,但我开始觉得它有点傻。虽然我们当然可以用 Bash 做我们想做的一切(它非常强大),但我开始怀疑我们是否不应该使用适当的脚本语言(在我们的例子中很可能是 Ruby)。
您如何决定何时在脚本中使用 Perl/Python/Ruby 而不是 Bash?我认为使用 Ruby 的 init 脚本没有意义,但是添加电子邮件帐户的稍长脚本怎么样?
我brew update && brew upgrade好久没跑了。
我刚刚做了一个大规模的升级,结果破坏了我的 Vim。
这是我运行后得到的vim:
Run Code Online (Sandbox Code Playgroud)dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib Referenced from: /usr/local/bin/vim Reason: image not found Trace/BPT trap: 5
我遇到过一些网站,但没有一个真正有用。
他们说这可能与rvm但brew uninstall vim; rvm system; brew install vim没有帮助。我也尝试重新安装 MacVim,但没有解决问题。
添加export PATH="/usr/local/bin:$PATH"到我的.bash_profile也没有帮助。
以下是供将来参考的列表:
我的 …
我最近在获得 SSD 驱动器后重新安装了 Ubuntu 12.10 后重新安装了 RVM(按照http://rvm.io 上的说明进行操作)。
现在,当我输入: type rvm | head -1
我收到以下错误:
rvm is a function
-bash: type: write error: Broken pipe
Run Code Online (Sandbox Code Playgroud)
但是,如果我立即重复该命令,那么我只会收到:
rvm is a function
Run Code Online (Sandbox Code Playgroud)
而且看起来一切正常?发生了什么?我能做些什么来修复它?它并不总是发生。它似乎更加零星。我试图找到某种模式,但还没有。
我有一个包含这一行的 ruby 脚本:
system("open '#{html_path}'")
Run Code Online (Sandbox Code Playgroud)
html_path是本地.html文件的路径。因此,脚本会打开一个浏览器,我通常可以在其中检查和查看此文件。
与 MacOS 环境相比,这在bashWSL 中不起作用。运行脚本没有任何反应,当我open直接在控制台中执行调用时,我得到了这个:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ open Preview.html
Couldn't get a file descriptor referring to the console
Run Code Online (Sandbox Code Playgroud)
我已经调查open过在 Ubuntu中做了一些不同的事情,我应该使用see或xdg-open打开一个文件。
不幸的是,这些在 WSL 中也不起作用:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ see ./Preview.html
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /us
r/bin/see line 528.
Couldn't find a suitable web browser!
Set …Run Code Online (Sandbox Code Playgroud) 编辑以反映我真正想解决的问题:
我需要设置我的 ruby 环境,以便我可以通过 Capistrano 进行部署。
export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
我把这些放在 ~deploy/.profile 中,但是当我 ssh 进入时,它们没有运行。想法?
我正在运行 Ubuntu 12.04。
原来的问题是:
当我在本地主机上通过 ssh 连接到另一个帐户时,它不会加载我的 .profile。如何强制 ssh 加载它?我正在运行 Ubuntu 12.04。
Git 根据计算出的任何文件的哈希值将内容唯一地存储在其存储库中。如果我的目录在其中某处有同一个文件的两个副本,git 只会实际存储它一次。
我想知道这个相同的概念是否已经在操作系统级别作为某种文件系统实现了?
如果文件系统默认以这种方式运行,它将很好地帮助解决dll 地狱问题。本质上,它会代表您自动进行符号链接。任何应用程序都可以打包(如 jar)在一个目录中,包含它的所有依赖项,并且没有额外的存储成本。
Ruby 爱好者通过将库发布为 rubygems 来共享库。尽管如此,这种共享 gems 的努力导致了部署噩梦,导致Vendor Everything概念将所有依赖项复制到本地文件夹中以避免此类噩梦。
我正在从使用不同版本的 ruby 和 rails 的不同书籍中学习 rails。现在我在 Mac OS X Snow Leopard(在/usr/bin)上安装了 ruby 1.87 ,但还需要将 ruby 1.9 用于不同的 rails 应用程序。
谁能告诉我如何使这项工作?我是新手,所以尽可能多的说明将不胜感激。
我有一个在线 CentOS 服务器,其中包含需要备份到 Amazon Glacier 的 cPmove 文件目录。我只有命令行访问权限,没有 GUI。
我需要一个相对容易使用的命令行客户端来上传文件。例如,我之前(https://github.com/andreafabrizi/Dropbox-Uploader)使用过 dropbox_uploader.sh和这个简单的 bash 脚本:
#!/bin/bash
find /backup_folder -maxdepth 1 -name "cpmove-*.tar.gz" | while read CPMOVE
do
./dropbox_uploader.sh upload ${CPMOVE}
done
Run Code Online (Sandbox Code Playgroud)
我看到了这个:https : //github.com/carlossg/glacier-cli 但我没有在服务器上安装 java 并且由于最近所有的安全问题而有点犹豫要安装它。
我确实有 python 和 ruby:
me@server [/home]# python -V
Python 2.4.3
root@server [/home]# ruby --version
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-linux]
me@server [/home]#
Run Code Online (Sandbox Code Playgroud)
是否有 ruby(优选)或 python 或其他语言(不太可取)amazon Glacier 命令行客户端?)