Używam tego skryptu do tworzenia kopii zapasowych starą prywatną instancję PostgreSQL okresowo Gmail:
#!/bin/bash
/opt/local/lib/postgresql83/bin/pg_dump maxgests -U postgres | gzip --best -c > $1 && (/opt/local/bin/mutt -s `date "+%d-%m-%Y-%H:%M"` -a $1 $2 < /dev/null)
jak późno Dostaję to:
./postgres_to_gmail.sh: line 2: $1: ambiguous redirect
I skrypt już nie działa. Mac OS X 10.6.8.
Czy każdy może powiedzieć, co jest nie tak i jak to naprawić?
Pierwszy argument jest ścieżka, jak /tmp/database.gz
Drugi argument jest e-mail.
Więc co robi $ 1 Przeglądaj jak? Coś innego, musisz zacytować ** wszystkie ** zmienne zawierające ścieżkę w twoich skryptach Bash. W przeciwnym razie zostaną złamane, gdy (nie, jeśli, * gdy *) będą zawierać spacje. –
Nie sądzę, aby nawiasy wokół ostatniego polecenia były potrzebne lub użyteczne. – tripleee
Masz rację, wyjaśniłem wartości argumentów. –