[英]`require': cannot load such file - Running ruby from bash script
[英]running ruby script with file pather args from a bash script
我正在使用bash脚本启动ruby脚本。 如果您位于脚本的目录中,则此方法效果很好,但如果您不在该目录中,则该脚本的行为很有趣,因为它不在文件路径中。
#!/bin/sh
jruby -Ilib script.rb $@
我将此添加到脚本中。
mypath=`realpath $0`
cd `dirname $mypath`/..
它可以使脚本从我想要的任何位置运行。 问题在于其参数未更改其相对路径名。
我正在使用trollop进行输入解析。
我的问题是:如何在输入中更改路径的输入,以便在将args推送到ruby脚本时它将是正确的相对路径。 我很乐意用红宝石解决这个问题。
这专门使用bash。 它组装一个参数数组,为每个参数调用realpath
。
#!/bin/bash
mypath=$(realpath $0)
args=()
for arg; do
args+=( "$(realpath "$arg")" )
done
cd "$(dirname "$mypath")"/..
jruby -Ilib script.rb "${args[@]}"
我在整个脚本中使用了双引号,以处理包含空格的文件和路径。
我最终还是这样
我发现使用环境变量效果最好
#!/bin/bash
if [ "$EN_VARE"="" ]
then
EN_VARE="."
fi
jruby -I$EN_VARE/lib $EN_VARE/lib/main_file.rb $@
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.