Ich bin neu in zenity
und ich versuche, ein einfaches Skript zum Laden einer Datei mit zenity --file-selection
und dem wc
Befehl zum Abrufen der Wortanzahl dieser Datei zu erstellen. Ich habe erfolgreich ein Formular erstellt, mit dem die Datei durchsucht werden kann, kann jedoch keine Ausgabe erhalten. Können Sie mir bitte sagen, wo ich den Fehler mache?
Mein aktuelles Skript lautet:
#creates a box
if zenity --entry \
--title="Word count" \
--text="Enter file location" \
--entry-text "File path"
then
#Zenity file selection code for browsing and selecting files
FILE=`zenity --file-selection --title="Select a File"`
case $? in
0)
echo "\"$FILE\" selected.";;
1)
echo "No file selected.";;
-1)
echo "An unexpected error has occurred.";;
esac
# To show the location in the text box
if zenity --entry \
--title="Word count" \
--text="Enter file location" \
--entry-text "$FILE"
then
#word counting code
word_count='wc $FILE'
zenity --info --title="Word Counted" --text="Counted words $word_count"
fi
fi
FILE=`zenity ...
, nochwordcount='wc..
?Antworten:
Um die Ausgabe eines Befehls in einer Variablen zu speichern, müssen Sie den Befehl in backtics (
`command`
) oder besser in$()
($(command)
) einschließen . Sie verwenden einfache Anführungszeichen, was bedeutet, dass Sie die Zeichenfolge speichernwc $FILE
und nicht tatsächlich ausführenwc
:Verwenden Sie außerdem die folgende
-w
Option , um nur die Wörter und nicht die Anzahl der Zeichen und Zeilen abzurufen:Um die Nummer ohne Dateinamen zu erhalten, können Sie Folgendes verwenden:
quelle
wc
als Eingabestream anstelle eines Dateinamens zu übergeben:wc < "$FILE"
Ich denke, dass der richtige Code folgender sein könnte:
quelle
FILE="$(zenity --file-selection --title="Select a File")"
Ich denke, das ist ein Syntaxfehler.