• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

In POSIX sh, array references are undefined.

foxit

Well-Known Member
Themenstarter #1
Hallo zusammen

In einem Skript verwende ich folgendes:
Code:
#!/usr/bin/env sh
...
...

_SN="(node1 node2 node3)"

...
...

if [ "$#" = "0" ]; then
  f_help
  exit 1
else
  case "$1" in

...
...

    show)
      echo "${_SN[@]}"
    ;;

...
...
Der Code funktioniert und ich wollte zum Abschluss man noch einen Test mit "shellcheck" [1] machen. Dieses Tool wirft mir aber folgende Meldung:
Code:
In node_backup.sh line 68:
  echo "${_SN[@]}"
  ^-- SC2039: In POSIX sh, array references are undefined.
Leider verstehe ich auch nach dem Xten mal lesen diese Meldung nicht. Was genau ist hier das Problem?

Danke

[1] https://github.com/koalaman/shellcheck
 

TCM

Well-Known Member
#6
#!/usr/bin/env sh ? Also bitte... Wenn schon POSIX, dann hat auch /bin/sh zu existieren. Oder warum bist du dir sicher, dass /usr/bin/env immer existiert?
 
Zuletzt bearbeitet:

lme

FreeBSD Committer
#7
#!/usr/bin/env sh ? Also bitte... Wenn schon POSIX, dann hat auch /bin/sh zu existieren. Oder warum bist du dir sicher, dass /usr/bin/env immer existiert?
Das kann aber durchaus sinnvoll sein. Unter Solaris ist /bin/sh eine total grützige Mistshell, die POSIX nicht mal buchstabieren kann.
Wenn man dann /usr/xpg4/bin vor /bin in den Pfad nimmt, wird eine POSIX-konforme sh benutzt.