【发布时间】:2017-11-08 20:23:34
【问题描述】:
我有一个简单的 Bash 脚本。
#!/bin/bash
function askExp
(
read -ep "$1" -n "$2" -r "$3"
)
askExp "PHP? [Y/n]: " 1 php
echo $php
如何修改上述脚本才能工作?在echo $php 之后没有,我什么也得不到。我需要使用 bash 函数,因为之后我将在函数内部添加一个正则表达式验证。该函数将在脚本中多次使用。
【问题讨论】:
-
函数定义错误。这是无效的 shell 语法。
-
这是有效的语法。函数体不限于
{ list; }:它可以是任何复合命令。使用(list)、((expression))、[[ expression ]]、for、select、case、if、while或until很奇怪但合法。 -
其实有点不对;您需要在函数名称和子shell 主体之间使用
()。我不确定这是否是解析器中的错误,但即使它是并且已修复,askExp () ( ... )仍然是首选。