我正在写一些Ruby在命令行上使用,但shell会干扰太多 – 有没有办法closures整行的插值? 我知道我可以逃脱某些人物,但我正在寻求一个全面的禁令。
例如,如果以空格开始,我已经将shell设置为不添加到历史logging中。
任何帮助,这是非常感谢。
我不认为我自己清楚,我的道歉。 一个例子:
ruby -pi -e 'gsub(/(find)(this)/, "#{$1} #{$2}")'
shell不会插入这些$数字,因为它被包裹在单引号中,但是有时代码需要包含引号。 Ruby在这方面相当有帮助,你可以用其他特殊字符来改变引号,但是这一切都开始变得有点混乱,并且不会像上面那样简单。 我想要的更像是:
%% ruby -pi -e 'gsub(/(find)(this)/, "#{$1} #{$2}")'
其中%%将在该行的其余部分由shell进行内插。
如何使用一个函数,将从提示读取,然后按字面input你input的内容?
function f { read -p"> " c; $c; }
在使用中,它将如下所示:
$ f > echo $var $var
当你创build你的命令行时,继续使用单引号,但是转义(使用)任何内部的单引号,并且用单引号replace它们,而不用结束整个string的引用。