Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
AJenbo skrev:Hvad skal man med stien til programmet? Hvis man kan finde det med which kan man også køre det uden stien.
I scripts og lignende fortrækker jeg at bruge den absolutte sti:
Jeg har programmer der ligger uden for stier der er nævnt i PATH miljøvariablen
Jeg har haft problemer med PATH,. Læs forskellig rækkefølge for hvordan programmer bliver fundet for mine programmer der ligger på ikke-normale steder i filsystemet.
/bin/which bruger PATH [1]
Jeg bruger derfor absolut sti i scripts så jeg ikke kommer i problemer med PATH søgestier efter programmer.
if test -n "$KSH_VERSION"; then puts() { print -r -- "$*" } else puts() { printf '%s\n' "$*" } fi
ALLMATCHES=0
while getopts a whichopts do case "$whichopts" in a) ALLMATCHES=1 ;; ?) puts "Usage: $0 [-a] args"; exit 2 ;; esac done shift $(($OPTIND - 1))
if [ "$#" -eq 0 ]; then ALLRET=1 else ALLRET=0 fi case $PATH in (*[!:]:) PATH="$PATH:" ;; esac for PROGRAM in "$@"; do RET=1 IFS_SAVE="$IFS" IFS=: case $PROGRAM in */*) if [ -f "$PROGRAM" ] && [ -x "$PROGRAM" ]; then puts "$PROGRAM" RET=0 fi ;; *) for ELEMENT in $PATH; do if [ -z "$ELEMENT" ]; then ELEMENT=. fi if [ -f "$ELEMENT/$PROGRAM" ] && [ -x "$ELEMENT/$PROGRAM" ]; then puts "$ELEMENT/$PROGRAM" RET=0 [ "$ALLMATCHES" -eq 1 ] || break fi done ;; esac IFS="$IFS_SAVE" if [ "$RET" -ne 0 ]; then ALLRET=1 fi done
exit "$ALLRET"
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags