我在Bash Scripts中使用代码来编写输出结构:
box_full() {
printf '*%.0s' $(seq 1 67)
echo ""
}
box_content() {
echo -n "*"
if [ $# -eq 0 ]
then
printf ' %.0s' $(seq 1 65)
elif [ $# -eq 1 ]
then
RIGHT="$1"
printf ' %.0s' $(seq 1 17)
echo -n "${RIGHT}"
printf ' %.0s' $(seq 1 $[48-${#RIGHT}])
elif [ $# -eq 2 ]
then
LEFT="$1"
RIGHT="$2"
printf ' %.0s' $(seq 1 3)
echo -n "${LEFT}"
printf ' %.0s' $(seq 1 $[14-${#LEFT}])
echo -n "${RIGHT}"
printf ' %.0s' $(seq 1 $[48-${#RIGHT}])
fi
echo "*"
}`
用法是:
box_full
box_content "Download-Process..."
box_full`
有没有办法在Ruby Scripts中执行此操作?
编辑:我解决的第一个:module Style
def self.box_full
puts '*' * 67
end
def self.box_content(content)
box_rest = 66 - content.length
box_rest.to_i
print '* ' + box_rest * '' + '*'
end
end
所以箱子全部运作良好。
对于第二个,我想给方法框内容一个名为content的字符串。实际上它不起作用。希望的输出是:
* content *
最后一个*应该设置在第67位的行尾。 是否有可能在Ruby中解决这个问题?
答案 0 :(得分:0)
你可以通过在ruby脚本中进行系统调用来实现这一点:
system("printf '*%.0s' $(seq 1 67)")
如果您需要引用变量,例如输入参数:
system("echo #{ARGV[0]}")