Strona 1 z 1

[+] Zła wartość zmiennej w skrypcie

: 27 lutego 2011, 09:32
autor: starach

Kod: Zaznacz cały

#!/bin/sh

### BEGIN INIT INFO
# Provides:		ventrilo
# Required-Start:	
# Required-Stop:	
# Default-Start:	2 3 4 5
# Default-Stop:		
# Short-Description:	Ventrilo voice comunication server
### END INIT INFO
set -x

VENPATH=/home/ownator
VENBIN=$VENPATH/ventrilo_srv

case "$1" in
  start)
	if [ ! -f $VENTBIN.pid ]
	then
	  su ventrilo -c "$VENBIN -f$VENPATH/ventrilo_srv/3784 -d"
	  renice -5 `cat $VENPATH/ventrilo_srv.pid`
	else
	  echo "[VT] Ventrilo server already running."
	fi
	;;
  stop)
	if [ ! -f $VENTBIN.pid ]
	then
	  echo "[VT] Ventrilo server isn't running."
	else
	  echo "[INFO] Stopping Ventrilo server."
	  kill `cat $VENTBIN.pid`
	fi
	;;
  status)
	if [ ! -f $VENTBIN.pid ]
	then
	  echo "[VT] Ventrilo server isn't running."
	else
	  cat $VENTBIN.pid
	fi
	;;
  *)
	echo "Usage: /etc/init.d/ventrilo.sh {start|stop|status}"
	exit 1
esac

exit 0
Mam problem z ustawieniem zmiennych

Kod: Zaznacz cały

VENPATH=/home/ownator
VENBIN=$VENPATH/ventrilo_srv
Przy próbie wyświetlenia ich za pomocą

Kod: Zaznacz cały

echo $VENTPATH
Nie otrzymuję wartości zmiennej. Wyświetla się tylko pusta linia. W konstrukcjach warunkowych jest to o tyle problemem, że skrypt nie może ustalić czy plik istnieje

Kod: Zaznacz cały

if [ ! -f $VENTBIN.pid ]
	then
Dla niego wartość po -f wynosi .pid

: 27 lutego 2011, 10:19
autor: lessmian2
Chyba było dość późno jak to pisałeś ;)

Kod: Zaznacz cały

VENBIN=$VENPATH/ventrilo_srv
i

Kod: Zaznacz cały

if [ ! -f $VENTBIN.pid ]

: 27 lutego 2011, 10:30
autor: starach
lessmain2, nie, ja po prostu idiotą jestem od urodzenia.
Dziękuję.

: 27 lutego 2011, 10:32
autor: Bastian
A moze tak:

Kod: Zaznacz cały

VENPATH="/home/ownator"
VENBIN="${VENPATH}/ventrilo_srv"



Kod: Zaznacz cały


VENBIN="${VENPATH}/ventrilo_srv"

Kod: Zaznacz cały

if [ ! -f ${VENBIN}.pid ]