次のスクリプトがあるとしましょう。
#!/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
基本的には(2番目の質問はもちろん、sudo
最も効率的に使用すべき方法に関するものです)、判断の問題です。
- スクリプトには3回の呼び出しがあります
yum
。スクリプトが最初にテストされると、次のように実行されます。root
sudo を使用して独自に実行すると、より簡単なスクリプトが生成されます。 - 一方、一部の人々は具体的には次のようにコメントすることもできます。
root
インタラクティブな部分をより安全にテストします(パッケージ名を直接指定するなど、スクリプトの開発と拡張を続ける場合)。私の傾向は、スクリプトを持つことができるコマンドラインオプションを提供することです。テスト済みです。、実行したいコマンドのみを表示(または記録)します。
たとえば、
- インストールしないと
whiptail
どうなりますか? - もし
$choice
言葉でなければ、case
声明に引用しておくと役に立ちます。 whiptail
yumがエラーを報告するとどうなりますか(ユーザーにエラーが表示されますか、それとも後で別の呼び出しがあります)