KSH-Skript: Führen Sie bash-Charakter Ersatz: ${@/.txt/}
Frage
Ich habe ein KSH-Skript, das so bleiben muss (ein Teil der Programme läuft es darauf bestehen, wobei KSH). Ich möchte das Eingabeargument „test.txt“ nehmen und die letzten 4 Zeichen entfernen oder den „.txt“ mit nichts finden und ersetzen.
In der bash würde ich tun,
NewVar=${@/.txt/}
Das funktioniert nicht, obwohl in KSH. Wie kann ich von der .txt in KSH loswerden? Ich habe versucht,
bash -c 'NewVar=${@/.txt/}'
, aber es hat den $ @ Variable in diesen neu geschaffen Shell nicht.
Danke,
Dan
Lösung
Warum nicht benutzen base ?
Andere Tipps
KSH lassen Sie nicht es mit $ @ tun, aber wenn man es zu einer temporären Variablen zuweisen, können Sie es tun, ohne Laichen andere proc mit
tmp=$@
newvar=${tmp%.txt}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow