我在Linux模式下使用InstallAnywhere进行安装,并希望在安装完成后运行一些交互式shell脚本。所谓“交互式”,我的意思是脚本应该问一些问题,并接受用户的输入。
我尝试使用“executed file”操作来运行它,但是脚本没有向控制台输出任何内容(当然是因为它将调试信息打印到输出文件中)。我还试图使用"fg %1“(这是InstallAnywhere中的最后一个命令)将脚本带到前台,但它也没有工作。
在控制台模式下,有任何方法可以通过InstallAnywhere执行交互式脚本吗?
发布于 2013-05-29 00:30:01
与其使用shell脚本进行用户交互,不如利用IA收集所需的答案,将它们填充到IA变量中,然后在一个或多个“执行脚本/批处理文件”操作中使用这些变量来完成安装后的工作。
假设您想收集一个名、姓和电话,然后将它们写到安装目录中的一个文件中(我知道,我知道,但希望是演示的)。
$FIRST_NAME$。$LAST_NAME$。$PHONE_NUMBER$。TRUE结果将执行跳转以“获取用户信息”。换句话说,一个糟糕的名字、坏的姓氏或坏的电话号码应该被评估为TRUE。这将使用户返回到“获取用户信息”目标标签。三个有效值应该计算为false,因此不执行跳转。我知道呀。这很奇怪。${MY_VARIABLE_NAME}来帮助IA区分变量和它自己的变量)。Unix/Linux版本可能如下所示:
#!/bin/sh
echo <<EOF
Name: $FIRST_NAME$ $LAST_NAME$
Phone: $PHONE_NUMBER$
EOF > $USER_INSTALL_FOLDER$$/$userName.txtWindows版本类似:
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和控制台输入操作可以将安装程序扩展到图形平台和控制台目标平台。无论您如何收集输入,安装后脚本都保持不变。
最后,你应该问你的问题(如果可能的话)在预装.这样,如果用户不能或不愿回答问题,他们就可以决定放弃安装。如果用户不愿意或无法提供所需的信息,在安装后询问问题可能会使安装挂起,或迫使用户回滚。
https://stackoverflow.com/questions/16000915
复制相似问题