ubuntuusers.de

🚧 Am Sonntag, 5. Mai, werden ab 16 Uhr die Server aktualisiert und eine neue Inyoka-Version veröffentlicht. Das Portal wird mehrmals nicht verfügbar sein.

Anhang: nano-sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh

# startet nano mit Farbschema "sh", wenn Datei ein Skript ist,
# mit Farbschema "html", wenn Datei eine XML-Datei ist,
# ansonsten ohne spezielles Farbschema.
# Erwartet nicht mehrere Dateien als Argument
# (erste Datei entscheidet für alle)
#
# Version 2008-02-06.1
#

##
## Verbesserungsvorschläge bitte im Forum
## http://forum.ubuntuusers.de/topic/130525/
##

SHELLS="(sh|bash|t?csh|dash|ksh|rc)"

findfilename() {
  while [ "$1" ]
  do
    modifier=`echo "$1"|cut -c1`
    if [ "$modifier" = "-" ]
    then
      case `echo "$1"|cut -c2-` in
        C|Q|T|Y|o|r|s) shift;;
        *) ;;
      esac
    elif [ "$modifier" = "+" ]
    then
      cursorposgiven=1
    else
      filename="$1"
      break
    fi
    shift
  done
}

findfilename "$@"
shebang="$(head -1 "$filename" 2>/dev/null|egrep "^#![[:space:]]*[/a-zA-Z]*/$SHELLS([[:space:]]|$)")"
# etwas kompliziert, aber ''file "$filename"'' scheitert z.B. an dash (vgl. /usr/share/file/magic )
xmlhead="$(head -1 "$filename" 2>/dev/null|egrep -i "^<\?xml ")"

# if [ -x "$filename" -a "$shebang" != "" ] # nur ausführbare Skripte
if [ "$shebang" != "" ] # auch Skripte, die nicht ausführbar sind
then # Datei ist Shell-Skript
  if [ "$cursorposgiven" ]; then
    nano -Ysh "$@"
  else # Cursor auf erste nicht-Kommentarzeile setzen
    firstactiveline=$(egrep -n -m1 "^[[:space:]]*[^#]" "$filename"|cut -d: -f1)
    nano -Ysh +$firstactiveline,1 "$@"
  fi
else # Datei ist kein Shell-Skript
  if [ "$xmlhead" ]; then # Datei ist XML-Dati
    nano -Yhtml "$@"
  else
    nano "$@"
  fi
fi
Anhang herunterladen

Diese Revision wurde am 3. Dezember 2020 09:18 von ubuntuusers erstellt.