是否可以在安装 rpm 期间获取用户的输入?

Jim*_*Jim 6 linux unix bash rpm

在 rpm 安装期间是否可以从用户那里获得输入?
我有一个自己运行的脚本(从用户那里获取输入并执行操作),但是当作为 rpm 安装后的一部分运行时(即在%postrpm 规范的部分中添加),它不起作用。

应该可以吗?这是部分:

%post

import()  
{  
echo "Do you want to import file?"   
select INPUT in "Y" "N"; do  
        case $INPUT in  
                Y ) echo "You selected to import file";break;;  
                N ) echo "Exiting";exit 0;break;;  
        esac  
done   

read -p "Please file path: " FILE  
if [ -d "$FILE" ]; then  
      cp $FILE/myFile /opt/tmp/   
      echo "Done!"  
else  
   echo "No File Path."  
   done=0  
   while [ $done = 0 ]  
   do   
        echo  "Do you want to abort"  
        select INPUT in "Y" "N";  
        do  
                case $INPUT in  
                        Y )   
                                echo "Aborting"   
                                done=1  
                                break  
                                        ;;  
                        N )  
                                 echo "You selected to import"  
                                # break  
                                 #;;  
                                 read -p "Please provide the directory : " FILE  
                                 if [ -d "$FILE" ]; then  
                                        cp $FILE/myFile /opt/tmp  
                                        echo "Done"   
                                        done=1  
                                else  
                                        echo "Aborting."  
                                fi  
                                break  
                                ;;  
                esac  
           done  
   done  

fi
}    

import
exit 0  
Run Code Online (Sandbox Code Playgroud)

在安装过程中,它直接跳转到第二个 case 语句中的 aborting。
为什么?我在这里做错了什么?

phe*_*mer 4

不可以,RPM 中不能包含交互式安装后脚本。这是故意的。

很多时候 RPM 是安装在无人值守的系统上的。如果安装一直挂起直到有人出现,它可能会卡在那里很长时间。