Codewars 的分配https://www.codewars.com/kata/56dbe0e313c2f63be4000b25/train/shell 如果我理解正确,下面写的应该理解为 oper(fct, s) - 我很困惑该函数的参数是写在括号中 - 但这是 bash,参数不是以这种方式传递的(可能是为了澄清而写的???)
其中“fct”是我编写的函数 - $1 “s”是测试的行 - $2
这是我的“脚本”
#!/bin/bash
vertMirror() {
vert_str=""
str=$(echo "$2" | tr "," " ")
for word in $str
do
rev_str=$(echo "${word}" | rev)
vert_str+="${rev_str}\r"
done
echo "${vert_str%??}"
}
horMirror() {
hor_st=""
str=$(echo "$2" | tr "," " ")
declare -a array
array=($(echo ${str}))
count=${#array[*]}
for ((i=count -1;i>=0;i--)); do
hor_st+="${array[i]}\r"
done
echo "${hor_st%??}"
}
但在这里我不知道如何运行整个脚本 - 我在 oper() 中编写了这些行。来自服务器的响应 --- 空行。我错误地将它分配给函数变量??? 我不知道oper()中需要写什么
oper() {
fct=$(vertMirror "$2") # vertMirror "$2"
fct=$(horMirror "$2") # horMirror "$2"
}
oper $1 $2
Подскажите пожайлуста "куда или как копать!!!!"
据我了解,任务的本质是编写两个函数,以某种方式(以不同的方式)转换结果字符串。并编写另一个函数,该函数将根据传递给脚本的参数执行一个或另一个函数。简化后,此示例如下所示:
嗯,很明显 opt 函数是多余的,你可以简单地这样做:
请注意,数据变量(字符串)包含在“”中。因为 数据可以包含空格,函数名称不允许空格。测试: