关于whiptail和bash函数的问题

关于whiptail和bash函数的问题
  • 假设我有这个脚本:

    #!/bin/bash
    
    function cpp-lang {  
    yum install "Development Tools"  
    }
    function updatesys { 
    yum -y update 
    yum -y upgrade
    }
    
         whiptail --checklist "test" 5 40 5\
                    Update "Update the system" on \
                    C++ "Install C++" off 2>results 
    
    while read choice 
    do
          case $choice in
            Update )updatesys
             ;;
            C++)cpp-lang
             ;;
             *)
             ;;
             esac
             done < results
    

    当我运行它时,它退出,我应该从函数中返回一些东西吗?

  • 以上面的脚本为例,我应该sudo在每次调用时运行yum install还是做得sudo ./script.sh足够了?

答案1

基本上(第二个问题当然是关于sudo应该最有效地使用方式),这是一个判断问题:

  • 在脚本中,有 3 个调用yum。如果脚本在开始时测试它是否运行为root并使用 sudo 来运行自身,这将生成一个更简单的脚本。
  • 另一方面,有些人可能会评论说,专门作为root使得测试交互部分变得不太安全(如果您继续开发和扩展脚本,包括直接指定包名称)。我自己的倾向是提供一个命令行选项来让脚本经测试,并仅显示(或记录)将运行的相应命令。

例如:

  • 如果whiptail不安装会发生什么?
  • 如果$choice不是一个词,在case声明中引用它可能会有所帮助。
  • 如果 yum 报告错误(用户是否看到该错误,或​​者whiptail稍后是否有其他调用),会发生什么?

相关内容