[英]interactive shell script from InstallAnywhere in console mode
我在Linux的控制台模式下使用InstallAnywhere進行安裝,並希望在完成安裝后運行一些交互式Shell腳本。 “交互式”是指腳本應提出一些問題並接受用戶輸入。
我嘗試使用“執行目標文件”操作來運行它,但是腳本未將任何內容打印到控制台(由於將調試信息打印到輸出文件,因此該腳本確實執行了)。 我還嘗試使用“ fg%1”(這是InstallAnywhere中的最后一個命令)將腳本放到前台,但是它也無法正常工作。
有什么方法可以通過InstallAnywhere在控制台模式下執行交互式腳本嗎?
與其使用Shell腳本進行用戶交互,不如利用IA收集所需的答案,將其填充到IA變量中,然后在一個或多個“ Execute Script / Batch file”操作中使用這些變量來完成安裝后的工作。
假設您要收集名字,姓氏和電話,然后將其寫入安裝目錄中的文件中(我知道,是有希望的,但希望能得到示范)。
$FIRST_NAME$
。 $LAST_NAME$
。 $PHONE_NUMBER$
。 TRUE
將執行跳轉到“獲取用戶信息”的操作。 換句話說,BAD名或BAD姓或BAD電話號碼應評估為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.txt
Windows版本類似於:
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$
是默認變量,通過“執行腳本/批處理文件”操作在其中存儲進程的退出代碼。
實際的安裝腳本可能比這更復雜。 您可以收集任意數量的變量,並在任意數量的安裝后腳本中使用它們。 這些腳本然后專注於完成工作,而不是與用戶交談。 那應該是IA的工作。
兩個分開的想法:
首先,同樣的技術也可以與GUI安裝程序一起使用。 實際上,在同一項目中混合使用GUI和控制台輸入操作會將您的安裝程序擴展到圖形和控制台目標平台。 無論您如何收集輸入,安裝后腳本均保持不變。
最后,您應該在預安裝過程中提出您的問題(如果可能)。 這樣,用戶可以決定是否能夠回答或不回答問題。 如果不願意或無法提供所需的信息,則在安裝后提出問題可能會使安裝掛起,或者迫使用戶回退。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.