whatshell mit posh und bosh

31/05/2016 - 13:03 von Michael Baeuerle | Report spam
whatshell nimmt bei meiner posh den Codepath für Versionen <0.5, obwohl
die Version neuer ist:

| $ posh whatshell.sh.orig
| posh 0.12.4, possibly slightly newer, yet<0.5

Ein Patch könnte vielleicht so aussehen:

whatshell.sh.orig 2016-04-11 23:35:50.000000000 +0200
+++ whatshell.sh 2016-05-31 12:18:59.000000000 +0200
@@ -11,7 +11,7 @@
case "$VERSION" in *zsh*) { echo "$VERSION";exit;};;esac
case "$SH_VERSION" in *PD*) { echo "$SH_VERSION";exit;};;esac
case "$KSH_VERSION" in *PD*|*MIRBSD*) { echo "$KSH_VERSION";exit;};;esac
-case "$POSH_VERSION" in 0.[1234]*) \
+case "$POSH_VERSION" in 0.[1234]|0.[1234].*) \
{ echo "posh $POSH_VERSION, possibly slightly newer, yet<0.5";exit;}
;; *.*|*POSH*) { echo "posh $POSH_VERSION";exit;};; esac
case $YASH_VERSION in *.*) { echo "yash $YASH_VERSION";exit;};;esac


| $ posh whatshell.sh
| posh 0.12.4


Mit Jörgs neuer Shell ergibt sich das hier:

| $ bosh whatshell.sh
| whatshell.sh: : | times: syntax error
 

Lesen sie die antworten

#1 Joerg.Schilling
31/05/2016 - 14:09 | Warnen spam
In article ,
Michael Baeuerle wrote:
whatshell nimmt bei meiner posh den Codepath für Versionen <0.5, obwohl
die Version neuer ist:

Mit Jörgs neuer Shell ergibt sich das hier:

| $ bosh whatshell.sh
| whatshell.sh: : | times: syntax error



Sven ist darüber bereits informiert, aber es ist ein Bug in bosh, der durch die
Tatsache bewirkt wird, daß $() im Falle eines Kommandos zunàchst in einen
binàren Syntaxbaum gewandelt wird und dabei das nötige Leerzeichen am Anfang
(vor dem () für einen Subshell) verliert. Der Code in bosh ist seit dem 25.5.
korrigiert.

EMail: (home) Jörg Schilling D-13353 Berlin
(work) Blog: http://schily.blogspot.com/
URL: http://cdrecord.org/private/ http://sourceforge.net/projects/schilytools/files/

Ähnliche fragen