comm и переменные не перенаправляют в файл
Я работаю над сценарием bash для хранения различий пакетов изо дня в день в системе на основе Debian.
Я играю с кодом ниже, чтобы отключить функциональность, прежде чем я настрою его и столкнулся с трудностями с линией
comm -1 -3 $DIR/$TODAY $DIR/$PREV > pkgs.log
Кажется, это проблема с переменными, так как они работают, когда я жестко кодирую имена файлов, а pkg.log содержит разницу между ними. Переменные работают, как и ожидалось, при использовании команды diff, поэтому я не уверен, какова точная причина.
#directory where lists will reside
DIR=".pkgLists"
#create package dir if it does not exist
if [ ! -d $DIR ]; then
mkdir $DIR
fi
#previous list of packages
#this needs to be updated
#for now it serves for testing purposes
PREV="$(ls -1t $DIR | head -n 1)"
#get todays date , it will be used for the file name
TODAY="$(date +%d-%m-%y)_installed_pkgs.list"
#get installed packeges and write sorted output to file
dpkg --get-selections | sort > $DIR/$TODAY
#check the difference between todays file and the previous ones
# this command works fine when I hardcode the names but not with the variables
# which work fine with the diff command below
# pkgs.log is always empty when I use the variables
comm -1 -3 $DIR/$TODAY $DIR/$PREV > pkgs.log
#this command works with the variables
# pkgs2.log always contains the expected information
diff $DIR/$TODAY $DIR/$PREV > pkgs2.log
Если кто-то может помочь, я был бы очень благодарен.