小编Tod*_*obs的帖子

为什么Ruby不允许我在私有方法中指定self作为接收者?

Ruby作为面向对象的语言.这意味着我发送的任何消息,我严格地发送它在类的一些对象/实例上.

例:

 class Test
   def test1
    puts "I am in test1. A public method"
    self.test2
   end

   def test2
    puts "I am in test2. A public Method"
   end
 end
Run Code Online (Sandbox Code Playgroud)

有意义我test2self对象上调用方法

但我不能这样做

  class Test
   def test1
    puts "I am in test1. A public method"
    self.test2 # Don't work
    test2 # works. (where is the object that I am calling this method on?)
   end

   private
   def test2
    puts "I am in test2. A private Method"
   end
 end
Run Code Online (Sandbox Code Playgroud)

test2 …

ruby private public

3
推荐指数
2
解决办法
1555
查看次数

如何测试变量是否*不是正整数?

要测试变量是否是例如大于0的数字,您可以写:

((i > 0))
Run Code Online (Sandbox Code Playgroud)

但是,我如何测试变量是否not大于0的数字?

编辑

抱歉打字错误not a number greater than 0.

编辑2

为这个可怜的问题而烦恼.变量的值作为命令行参数传递,因此它可以是数字或不是.这也需要检查.

bash

3
推荐指数
3
解决办法
2万
查看次数

如何使用域列表作为输入更新配置文件?

我有两个文件:domainList和config.cnf.domainList文件只有一个域列表,如下所示:

facebook.com
yahoo.com
youtube.com
Run Code Online (Sandbox Code Playgroud)

config.cnf是一个配置文件,具有相同的列表,格式略有不同.我需要编写一个脚本,在更新列表时更新配置文件.每当更新第一个列表时,我都可以执行bash脚本.这是配置文件中列表的格式......

*other config options/entries*
[my_list]
WWW.1 = facebook.com
WWW.2 = yahoo.com
WWW.3 = youtube.com
EOF
Run Code Online (Sandbox Code Playgroud)

所以,如果删除yahoo并在domainList中添加ebay并运行我的酷bash脚本,我需要更新配置文件...

*other config options/entries*
[my_list]
WWW.1 = facebook.com
WWW.2 = youtube.com
WWW.3 = ebay.com
EOF
Run Code Online (Sandbox Code Playgroud)

为了使事情(稍微)复杂化,域可以具有子域和外卡(即news.google.com或*.google.com).任何关于如何实现这一点的想法将不胜感激!如何在不弄清楚数据的情况下如何做到这一点?它可能只需要清除列表并每次都重新生成它,是吧?

谢谢!

EV

bash awk sed

3
推荐指数
1
解决办法
165
查看次数

如何根据curl的HTTP状态代码分支shell脚本?

我正在为备份编写一个bash脚本.脚本将运行curl,这将返回某个代码.

取决于此代码的结果:

  • 脚本必须继续运行(如果返回代码正常,如200)或
  • 脚本必须返回一个不正常状态(如果返回代码不正常,如400)并结束脚本而不做任何事情

如何从卷曲中读出回报?大多数人的简单脚本,但...... ;-)

bash curl

3
推荐指数
1
解决办法
5113
查看次数

如何检查手册页是否存在?

我正在尝试编写一个脚本来将手册页转换为PDF文件.我现在的脚本是:

#! /usr/bin/env bash
[[ $# -ne 1 ]] && { echo "Usage: $(basename $0) [command]" ; exit 1 ; }
man -t ${1} | ps2pdf14 - > "${1}_man.pdf"
Run Code Online (Sandbox Code Playgroud)

问题是如果手册页不存在,脚本仍将继续执行,生成一个空的PDF文件.所以我想知道是否有办法确定手册页是否存在?

linux bash manual conditional-statements

3
推荐指数
1
解决办法
957
查看次数

如何使用Rails防止重叠的cron作业?

我有一个cron作业设置,每5分钟运行一次任务.但有时该任务需要> 5分钟才能运行,因此该任务的另一个副本由cron同时运行.在运行另一个副本之前,我们是否有办法让它等待另一个工作完成?

ruby-on-rails crontab race-condition whenever

3
推荐指数
1
解决办法
2038
查看次数

是否有可能表达`stuff.map {| x | 把x}更简洁地说?

我想用某种速记来表达以下内容:

stuff.map {|x| puts x}
Run Code Online (Sandbox Code Playgroud)

这样的事情:

stuff.map {puts}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚语法.有人能告诉我怎么做吗?

ruby block map

3
推荐指数
1
解决办法
810
查看次数

在Git Bash终端中查找文件

我目前正在使用Git Bash导航文件目录和编辑文件。我想知道是否有命令在当前目录及其中的所有目录中搜索文件名。

git-bash gnu-findutils

3
推荐指数
3
解决办法
2万
查看次数

使用 tr 或类似命令交换 bash 中的两个字符

我正在做一个 bash 脚本,但我遇到了问题。我想更改字符串中两个字符的位置。

我的输入如下:

"aaaaa_eeeee"
Run Code Online (Sandbox Code Playgroud)

所需的输出是:

"eeeee_aaaaa"
Run Code Online (Sandbox Code Playgroud)

我不想反转字符串或其他类似的东西,我需要的是将字符“a”替换为“e”,将“e”替换为“a”。我试图制作一个echo "aaaaa_eeeee" | tr "a" "e. 第一个替换很简单,但第二个我不知道该怎么做。

bash replace tr

3
推荐指数
1
解决办法
171
查看次数

如何在数组中存储目录列表?

为什么这不列出任何东西?谢谢

FOLDER=()

ls /tmp/backup/ | while read DIR
do
    FOLDER+=("$DIR")
done

echo ${FOLDER[1]}
Run Code Online (Sandbox Code Playgroud)

arrays directory bash

2
推荐指数
1
解决办法
6257
查看次数