Создание сценария оболочки, но сценарий не требует ввода - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь создать сценарий оболочки, который работает как система заказов. Я начал с первых шагов, но он не требует ввода, я не уверен, что я делаю неправильно. Я приложил изображение того, каким должен быть конечный результат. Каков следующий шаг, который я должен сделать и что я должен начать исследовать enter image description here

#!/bin/bash

clear
echo "orderBeds"
read -p "Please Enter you choice (Quit/Order)" order
if [$order -e Order|order]
then
    echo "Please enter you name?"
elif [$order -e Quit|quit]
then 
     exit 
fi
done

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Я начну давать общие советы.


1) [ - это команда. Это означает, что вы, вероятно, не хотите раскрывать переменную рядом с ней, не разделяя их пробелами.

2) Если вы будете проверять более одного параметра, используйте конструкцию case. Помимо предоставления возможности улучшить структуру, вы сможете использовать выражения-глобусы в качестве параметров для сопоставления.


При этом давайте перепишем ваш код:

#! /bin/bash

clear
echo "orderBeds"

read -p "Please Enter your choice (Quit/Order)" order

case "$order" in
    [Oo]rder)
        read -p "Please enter your name: " name
        echo "$name placed an order."
        break
    ;;
    [Qq]uit)
        exit
    ;;
esac
1 голос
/ 17 апреля 2020

флаг -e предназначен для числовой эквивалентности.

Вот исправленный скрипт bash, с которого можно начать:

#!/bin/bash
clear

echo "orderBeds"

read -p "Please enter your choice (Quit/Order) " order

if [ $order == "order" ] || [ $order == "Order" ]
 then
  read -p  "Please enter your name " name
  echo "$name placed an order"

elif [ $order == "quit"] || [ $order == "Quit" ]
 then
  exit
fi

Обратите внимание на использование == вместо -e и разделение предложений or.

...