如何使用printf向打印命令添加新行?
printf "I want this on a new line!"
Run Code Online (Sandbox Code Playgroud)
我认为这将是这样的,但它没有用
printf "/n I want this on a new line!/n"
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
说我有一个包含单词red
和的文字blue
.
如何更换这个词的出现次数blue
字green
只有在包含所有字线red
?
同样我怎么能代替blue
用green
在不包含字都行red
?
如何将元素数组转换为大写?预期产出将是:
["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
=> ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
Run Code Online (Sandbox Code Playgroud)
以下不起作用,并将它们作为小写.
Day.weekday.map(&:name).each {|the_day| the_day.upcase }
=> ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Run Code Online (Sandbox Code Playgroud) 可以传递给命令行多长时间sh -c ''
?(在bash和bourne shell中)
该限制远低于操作系统的限制(在现代Linux的情况下).
例如:
$ /bin/true $(seq 1 100000)
$ /bin/sh -c "/bin/true $(seq 1 100000)"
bash: /bin/sh: Argument list too long
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个问题呢?
更新
我想注意到getconf
这里无法帮助(因为这不是系统限制):
$ seq 1 100000 | wc -c
588895
$ getconf ARG_MAX
2097152
Run Code Online (Sandbox Code Playgroud)
更新#2
现在我明白了这里有什么意义.这不是shell限制,即系统限制,但是对于每个参数的长度,而不是整个arglist.
$ /bin/true $(seq 1 100000)
$ /bin/true "$(seq 1 100000)"
bash: /bin/true: Argument list too long
Run Code Online (Sandbox Code Playgroud)
谢谢CodeGnome的解释.
这个问题不是关于如何使用File #close或File#open block语法自动关闭文件.这是一个关于Ruby在运行时存储其打开文件描述符列表的问题.
如果您的程序具有开放描述符,但您无权访问相关的文件或IO对象,那么如何找到对当前打开的文件描述符的引用?举个例子:
filename='/tmp/foo'
%x( touch "#{filename}" )
File.open(filename)
filehandle = File.open(filename)
Run Code Online (Sandbox Code Playgroud)
第一个File实例被打开,但对象的引用不存储在变量中.第二个实例被存储在文件句柄,其中I可以很容易地与#inspect或#关闭访问它.
但是,丢弃的File对象没有消失; 它只是无法以任何明显的方式访问.在对象完成之前,Ruby必须在某个地方跟踪它...但在哪里?
您将如何删除x个字符之后的所有内容?例如,删除 15 个字符之后的所有内容并添加...
到其中。
This is an example sentence
应该变成This is an exam...
在Ruby 2.2.0中,为什么:
BigDecimal.new(34.13985572755337, 9)
Run Code Online (Sandbox Code Playgroud)
平等34.0
但是
BigDecimal.new(34.13985572755338, 9)
Run Code Online (Sandbox Code Playgroud)
平等34.1398557
?
请注意,我在64位计算机上运行它.
ruby floating-point rounding bigdecimal floating-point-precision
我正在学习如何each
在ruby中工作的细节,我尝试了以下代码行:
p [1,2,3,4,5].each { |element| el }
Run Code Online (Sandbox Code Playgroud)
结果是一个数组
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
但我不认为我完全理解为什么.为什么each
同一个数组的返回值?难道每个都不提供迭代方法吗?或者只是该each
方法返回原始值的常见做法?
如何在HAML中为单个Ruby语句使用多行?例如,我想写下面的内容:
- entries = [{
- :title => "The Fellowship of the Ring",
- :body => "We should walk instead of fly"
- }]
!!! 5
%html
%head
%title Blog
%body
#content
- entries.each do |entry|
.entry
%h3.title= entry[:title]
%p.body= entry[:body]
Run Code Online (Sandbox Code Playgroud)
但当然前四行会产生语法错误.
所以我有一堆别名和命令行提示程序,我的主程序通过输入b到cmd.exe,然后是一些文件路径名称和什么没有.我如何在我的python脚本中运行这些参数?这样它模仿我在cmd中所做的动作?