为什么要使用ruby-l(ELL)标志?

为什么要使用ruby-l(ELL)标志?,ruby,Ruby,从手册页 (小写字母“ell”)启用自动换行 处理,这意味着首先将$\设置为$/,然后 第二,用chop!把读到的每一行都切掉 我可以构造一个开关工作的示例: ➜ ruby-ell cat app.rb p "hello world" p "$\: #{$\}" p "$\: #{$/}" ➜ ruby-ell ruby app.rb "hello world" "$: " "$: \n" ➜ ruby-ell ruby -l app.rb "hello world" "$: \n" "$

从手册页

(小写字母“ell”)启用自动换行 处理,这意味着首先将$\设置为$/,然后 第二,用chop!把读到的每一行都切掉

我可以构造一个开关工作的示例:

➜  ruby-ell cat app.rb
p "hello world"
p "$\: #{$\}"
p "$\: #{$/}"
➜  ruby-ell ruby app.rb
"hello world"
"$: "
"$: \n"
➜  ruby-ell ruby -l app.rb
"hello world"
"$: \n"
"$: \n"

因此我可以看到
-l
正在将
$/
加载到
$\
中,但您为什么要这样做?希望使用此开关的一些示例和/或引用:)

它可能最适用于-n-p。它允许您编辑当前行(
$。
),而不必关心尾随的换行符。例如,要在每行末尾附加“foo”:

$ echo -e "1\n2\n3" | ruby -lnpe '$_ << "foo"'
1foo
2foo
3foo
请注意,您可以指定输入记录分隔符:

echo -n "1-2-3-" | ruby -l055 -npe '$_ << "foo"'
1foo
2foo
3foo
所有这些开关都来自Perl,请参阅

$ echo -e "1\n2\n3" | ruby -npe '$_.chop!; $_ << "foo"'
1foo2foo3foo
echo -n "1-2-3-" | ruby -l055 -npe '$_ << "foo"'
1foo
2foo
3foo
echo -n "1-2-3-" | ruby -0056 -l055 -npe '$_ << "foo"'
1foo.2foo.3foo.