Wie schreibe ich ein Bash-Skript, das 3 verschiedene "Eingaben" behandelt?

328
JonasV

Ich versuche, meine .sh-Datei zu erstellen, die in der Lage ist, auf drei verschiedene Arten einen Pfad zu einer vom Benutzer geplotteten Datei zu erhalten.

Wenn in der Befehlszeile kein Dateipfad / env-variable (wie kann ich das richtig einrichten?) Als arg angegeben werden, möchte ich, dass das Programm von stdin liest, wenn "./example.sh" in der Shell aufgerufen wird.

Ich habe meine C-Programme für die Eingabe bereit, weiß aber nicht, wie ich die gegebene Situation im Bash-Skript "syntaxieren" soll.

Hier ist, was ich im Hinterkopf habe, die erste Zeile ist zu überprüfen, ob das Argument eine Datei ist, und setzt die Eingabe auf arg, falls angegeben, wenn nicht im eingabe eingegangen wird = minne. Dies ist eine Programmdatei im selben Verzeichnis:

#!/bin/bash echo "Submitting path to program file..":  echo "Enter path if you see no result from execution: ":  [ $# -ge 1 -a -f "$1" ] && input="$1" || input="./minne"  if[nofile as argument]  #use a default path to file in same dir called minne to load  fi[nofilev2 as argument]  #path from stdin, looped so that user gets same question again  fi[$var as argument]  #extract the path from the variable and pass it to the c program  fi[filepath as argument]  #load given input path  ./makefile < minne: echo$? 

Wie verwende ich mein Makefile richtig?

0
Möchten Sie nicht "elif" statt nur "fi" und dann kein neues "wenn"? Und ein paar Checks für welche $ 1? Und dann funktioniert dein Pseudoskript? Xen2050 vor 5 Jahren 0

0 Antworten auf die Frage