1
我正在编写一个bash脚本,以便更容易地使用Dropbox文件夹(我为uni存储课程作业)。我决定采用参数让我直接在文件夹中保留特定的几周,或者使用我的所有参考资料的父目录或目录。我还决定使用递归来验证输入(最初我通过将递归语句放在do while循环中创建了一个无限循环)。代码如下:迭代解决方案中的递归解决方案
#!/bin.bash
#changes to ~/Dropbox/UCP120/
function recurCall() {
echo "Invalid input: $arg1 does not exist."
echo "Enter a valid input"
read inputLoop
validateInput $inputLoop
}
function validateInput() {
arg1="$1"
reference="r"
##snip##
##if DIR is !null but non-existent loop and ask for input
elif [[ ! -d .../UCP120/"$arg1"/ || ! -d .../UCP120/Week\"$arg1"/ ]]; then
recurCall $arg1
##Recursive solutions don't require iterative control structures.
#while [[ snip (see if above) ]]; do
# recurCall $arg1
#done
fi
}
##Call the function. Get this ball rolling
validateInput $1
我的问题是:
- 难道我只是幸运这个工作?还是我设法合理设计这个呢?
- 递归是现实世界可行的解决方案吗?或在学习练习之外没用?
- 有没有真正的世界里的迭代迭代应用程序,就像我想不到的原始尝试?
- 我该如何改进?
谢谢,我很抱歉,如果我问了一个不恰当的问题。不过,我希望互联网以其丰富的经验可以帮助我和我理解这些概念。
编辑:删除if语句中的validateInput。交换函数名称,因为它们以这种方式更有意义。在有条件的情况下移除,以期望减轻屏幕宽度。
编辑:缩短的目录路径,以减轻屏幕宽度甚至更多。