Ruby 无法在目录路径中追加字符串
目标:使用今天的名称重命名目录中的文件夹 日期 我使用ruby文件,其中我使用linux命令修改目录(ruby版本为2.2),我的代码如下所示Ruby 无法在目录路径中追加字符串,ruby,unix,Ruby,Unix,目标:使用今天的名称重命名目录中的文件夹 日期 我使用ruby文件,其中我使用linux命令修改目录(ruby版本为2.2),我的代码如下所示 require 'date' class BSDK TDATE = Date.today.to_s DEFAULT_PATH = "/home/cyborg/bsdk/" VERSION = "bsdk-tk-4.2.71" def bsdk_processing bsdk_version = "#{DEFAULT_PATH}#
require 'date'
class BSDK
TDATE = Date.today.to_s
DEFAULT_PATH = "/home/cyborg/bsdk/"
VERSION = "bsdk-tk-4.2.71"
def bsdk_processing
bsdk_version = "#{DEFAULT_PATH}#{VERSION}"
bsdk_latest = "#{bsdk_version}(#{TDATE})"
system "mv #{bsdk_version} #{bsdk_latest}"
end
end
bsdk = BSDK.new
bsdk.bsdk_processing
当我尝试打印bsdk_最新版本时,它给了我
/home/cyborg/bsdk/bsdk-tk-4.2.71
2019-08-22
而不是像《家庭/电子人/bsdk/bsdk-tk-4.2.71》(2019-08-22)
注意:我们在路径/home/cyborg/bsdk/中有一个名为bsdk-tk-4.2.71的目录。正如@user1934428所指出的,问题得到了解决,版本中嵌入了新行
require 'date'
require 'fileutils'
class BSDK
TDATE = Date.today.to_s
DEFAULT_PATH = "/home/cyborg/bsdk/"
VERSION = "bsdk-tk-4.2.71"
VERSION.strip!
def bsdk_processing
bsdk_version = "#{DEFAULT_PATH}#{VERSION}"
bsdk_latest = "#{bsdk_version}""(#{TDATE})"
Fileutils.mv("#{bsdk_version}", "#{bsdk_latest}")
end
end
bsdk = BSDK.new
bsdk.bsdk_processing
我刚刚将
系统
更改为放置
,它显示了:mv/home/cyborg/bsdk/bsdk-tk-4.2.71/home/cyborg/bsdk/bsdk-tk-4.2.71(2019-08-21)
。。。这就是你想要的,对吗?不,我想把文件夹/home/cyborg/bsdk/bsdk-tk-4.2.71重命名为home/cyborg/bsdk/bsdk/bsdk-tk-4.2.71(2019-08-22)@cyborg:。bsdk\u最新。检查
显示什么?此外,您似乎构造了一个包含括号((#{TDATE}))的文件名。在本例中,您必须在mv
命令中引用shell(bash或POSIX shell)的参数。感谢@user1934428,问题得到解决,其中嵌入了新行,这仍然会给您一个shell语法错误,因为您没有引用bsdk_latest。
require 'date'
require 'fileutils'
class BSDK
TDATE = Date.today.to_s
DEFAULT_PATH = "/home/cyborg/bsdk/"
VERSION = "bsdk-tk-4.2.71"
VERSION.strip!
def bsdk_processing
bsdk_version = "#{DEFAULT_PATH}#{VERSION}"
bsdk_latest = "#{bsdk_version}""(#{TDATE})"
Fileutils.mv("#{bsdk_version}", "#{bsdk_latest}")
end
end
bsdk = BSDK.new
bsdk.bsdk_processing