首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制台模式下来自InstallAnywhere的交互式shell脚本

控制台模式下来自InstallAnywhere的交互式shell脚本
EN

Stack Overflow用户
提问于 2013-04-14 15:42:04
回答 1查看 2.1K关注 0票数 0

我在Linux模式下使用InstallAnywhere进行安装,并希望在安装完成后运行一些交互式shell脚本。所谓“交互式”,我的意思是脚本应该问一些问题,并接受用户的输入。

我尝试使用“executed file”操作来运行它,但是脚本没有向控制台输出任何内容(当然是因为它将调试信息打印到输出文件中)。我还试图使用"fg %1“(这是InstallAnywhere中的最后一个命令)将脚本带到前台,但它也没有工作。

在控制台模式下,有任何方法可以通过InstallAnywhere执行交互式脚本吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-29 00:30:01

与其使用shell脚本进行用户交互,不如利用IA收集所需的答案,将它们填充到IA变量中,然后在一个或多个“执行脚本/批处理文件”操作中使用这些变量来完成安装后的工作。

假设您想收集一个名、姓和电话,然后将它们写到安装目录中的一个文件中(我知道,我知道,但希望是演示的)。

  1. 添加一个跳转标签并将其命名为“获取用户信息”
  2. 添加控制台操作“获取用户输入”以读取名称。将结果分配给$FIRST_NAME$
  3. 添加Console操作“获取用户输入”以读取姓氏。将结果分配给$LAST_NAME$
  4. 添加控制台操作“获取用户输入”来读取电话号码。将结果分配给$PHONE_NUMBER$
  5. 添加“跳转到目标”动作与下一个跳跃动作“获取用户信息”(#1,上面)。添加规则来验证这三个变量,这样TRUE结果将执行跳转以“获取用户信息”。换句话说,一个糟糕的名字、坏的姓氏或坏的电话号码应该被评估为TRUE。这将使用户返回到“获取用户信息”目标标签。三个有效值应该计算为false,因此不执行跳转。我知道呀。这很奇怪。
  6. 最后,为每个目标安装平台添加尽可能多的“执行脚本/批处理文件”操作。对于这些操作中的每一个,添加一条规则,将该操作的执行限制在特定的平台上。对于Unix/Linux操作,一定要选中复选框“不要替换未知变量”,否则IA将用空格替换脚本变量。(注意:使用完整的变量名表单${MY_VARIABLE_NAME}来帮助IA区分变量和它自己的变量)。

Unix/Linux版本可能如下所示:

代码语言:javascript
复制
#!/bin/sh
echo <<EOF
Name: $FIRST_NAME$ $LAST_NAME$
Phone: $PHONE_NUMBER$
EOF > $USER_INSTALL_FOLDER$$/$userName.txt

Windows版本类似:

代码语言:javascript
复制
echo "Name: $FIRST_NAME$ $LAST_NAME$" > $USER_INSTALL_FOLDER$$/$userName.txt
echo "Phone: $PHONE_NUMBER$" >> $USER_INSTALL_FOLDER$$/$userName.txt

注意$/$的使用,IA将其转换为当前平台的适当路径分隔符。

在“执行脚本/批处理文件”操作之后,可以添加评估脚本/批处理文件成功与否的步骤。添加“跳转到目标”操作的规则,以评估$EXECUTE_EXITCODE$的值。$EXECUTE_EXITCODE$是默认变量,其中进程的退出代码由“执行脚本/批处理文件”操作存储。

现实生活中的安装脚本可能比这更复杂。您可以收集任意数量的变量,并在任意数量的安装后脚本中使用它们。然后,这些脚本将重点放在工作上,而不是与用户对话。那应该是内务部的工作。

两种离别的想法:

首先,同样的技术也可以用于GUI安装程序。实际上,在同一个项目中混合GUI和控制台输入操作可以将安装程序扩展到图形平台和控制台目标平台。无论您如何收集输入,安装后脚本都保持不变。

最后,你应该问你的问题(如果可能的话)在预装.这样,如果用户不能或不愿回答问题,他们就可以决定放弃安装。如果用户不愿意或无法提供所需的信息,在安装后询问问题可能会使安装挂起,或迫使用户回滚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16000915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档