测验:循环与函数
如果 /var/log/*.log 中的 for f 没有匹配的文件怎么办?
- 循环执行0次
- 模式字符串本身被传递一次并且循环运行一次。
- shell 抛出错误并且脚本终止。
- 空字符串被传递一次
如果决策函数输出结果为 echo yes / echo no 有什么不方便?
- 不能直接在 if 语句中使用;必须再执行一次字符串比较。
- 输出变慢
- 局部不能在函数内部使用
- 无法重定向到标准错误
为什么在重试函数中重新执行命令时需要使用“$@”?
- 因为它比 $* 快
- 因为函数内部只能使用$@
- 因为 bash 不支持 $*。
- $* 将所有参数组合成一个字符串,因此带有空格的参数将被拆分。
如果我在函数中创建没有 local 的变量,会出现什么问题?
- 它成为一个全局变量并覆盖调用方同名的变量。
- 当函数结束时,变量消失。
- 下次调用时未初始化
- 创建一个子 shell,但不传递任何值。
如果我在 1000 行循环中将 $(echo "$v" | sed 's/a/b/') 更改为 ${v//a/b} 会怎么样?
- 通过消除流程创建,速度显着加快
- 结果各不相同
- 仅减少内存使用
- 没有区别