ケース値を変数に保存する方法

ケース値を変数に保存する方法
selection=

until [ "$selection" = "0" ]; do

  echo ""
  echo "PROGRAM MENU"
  echo "1 - display free disk space"
  echo "2 - display free memory"
  echo ""
  echo "0 - exit program"
  echo ""
  echo -n "Enter selection: "
  read selection
  echo ""
  case $selection in
      1 ) df ;;
      2 ) free ;;
      0 ) exit ;;
      * ) echo "Please enter 1, 2, or 0"
  esac
echo $selection

done

2を押すと利用可能なスペースが表示され、エコーには2が表示されますが、「アイドル」のままにするにはエコーが必要です。

ベストアンサー1

あなたはできません。 Caseステートメントは、選択を使用して実行するアクションを決定します。 Case ステートメントには設定されません。

次のように試してみることもできます。

selection=

until [ "$selection" = "0" ]; do

  cmd=''

  echo ""
  echo "PROGRAM MENU"
  echo "1 - display free disk space"
  echo "2 - display free memory"
  echo ""
  echo "0 - exit program"
  echo ""
  echo -n "Enter selection: "
  read selection
  echo ""

  case "$selection" in
      1) cmd='df' ;;
      2) cmd='free' ;;
      0) cmd='exit' ;;
      *) echo "Please enter 1, 2, or 0"
  esac

  if [ -n "$cmd" ] ; then 
    echo "selection $selection is '$cmd'"
    $cmd
  fi

done

echo "selection $selection is '$cmd'実行前に実行され、そうでなければゼロになる前に終了し$cmdます。echo$selection

おすすめ記事