запуск состояния файла bash: дата: команда не найдена

5

Я установил версию Ubuntu Server, и хотя я довольно доволен Ubuntu, я пытаюсь создать файл bash для запуска программы в фоновом режиме. Что еще более важно, я пытаюсь правильно отобразить файл nameto и создать его, прежде чем запускать программу (мне нравятся мои отладочные материалы).

Однако, вот мой сценарий bash:

 #!/bin/bash
 PATH="/var/log/servers/Game/"
 FILENAME="startup"
 EXT=".log"
 DATE=$(date +%d-%m-%Y)
 NEWFILE=${PATH}${FILENAME}_${DATE}${EXT}

Я проверил, что файл существует в каталоге PATH. Однако проблема связана с командой date. Когда я запускаю скрипт bash -x game.sh , это то, что отображается.

 + PATH=/var/log/servers/Game/
 + FILENAME=startup
 + EXT=.log
 ++ date +%d-%m-%Y
 game.sh: line 5: date: command not found
 + DATE=
 + NEWFILE=/var/log/servers/Game/startup_.log
 + echo /var/log/servers/Game/startup_.log

Я не понимаю, почему он сказал бы, что команда не работает, когда я могу перейти на главную консоль и запустить date и получить действительный ответ.

Любая помощь очень ценится!

    
задан Twister1002 06.08.2015 в 05:38
источник

1 ответ

7
PATH="/var/log/servers/Game/"

Это устанавливает каталог PATH to just , и я сомневаюсь, что каталог содержит date .

Будьте осторожны, когда вы используете имена переменных верхнего регистра, вы легко можете топать по стандартной переменной окружения.

Придерживайтесь строчной буквы и будьте более наглядными. Рассмотрите возможность использования, например:

log_path="/var/log/servers/Game/"
NEWFILE="${log_path}${FILENAME}_${DATE}${EXT}"
    
ответ дан muru 06.08.2015 в 05:42
источник