Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
tobiasd
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von tobiasd » 15.09.2011 14:24:42
Hi,
ich versuch gerade unser Mailbox Backupscript so anzupassen, dass es eine Hand von E-Mail Adressen die in einer Variable festgelegt werden nicht mitgesichert werden. Um das ganze überschaubar zu machen hab ich einen Teil ausgeschnitten und angepasst:
Code: Alles auswählen
#!/bin/bash
blacklistuser='black@listed.com
back1990@xyz.com
backup2009@xyz.com'
if [ "${user}" = "${blacklistuser}" ]; then
echo "${user} blacklisted"
fi
Die Variable blacklistuser wird in der If-Anweißung komplett angezeigt (alle 3 Adressen als eine) gibt es eine Möglichkeit diese einzeln durch zu gehen?
Vielen dank schon mal
Tobi
Zuletzt geändert von
tobiasd am 15.09.2011 16:16:06, insgesamt 1-mal geändert.
-
ThorstenS
- Beiträge: 2875
- Registriert: 24.04.2004 15:33:31
Beitrag
von ThorstenS » 15.09.2011 15:27:58
Ich denke du kannst was hier von recyclen:
Code: Alles auswählen
#!/bin/bash
#
# Alle Platten und Partitionen im Rechner auflisten
# · benötigt das debian Paket disktype
# alternativ
# · blkid -s TYPE richtig gut
#
###################################################
unset GREP_OPTIONS
# die Daten kommen in ein array, daher die umschliessenden Klammern:
DISKS=( $(for i in /dev/disk/by-id/* ; do readlink -e $i; done | sort -u| grep -ve '[0-9]$') )
PARTITIONS=( $(for i in /dev/disk/by-id/* ; do readlink -e $i; done | sort -u| grep -e '[0-9]$') )
# Infos zu den Platten ausgeben:
echo -e "Du hast ${#DISKS[@]} Platten im System, das sind:"
for element in $(seq 0 $((${#DISKS[@]} - 1))) # seq 0 bis Anzahl -1 ist notwendig, da das array bei 0 anfängt
do
echo -e "\t${DISKS[$element]}"
done
echo -e "Du hast ${#PARTITIONS[@]} Partitionen im System, das sind:"
for element in $(seq 0 $((${#PARTITIONS[@]} - 1))) # seq 0 bis Anzahl -1 ist notwendig, da das array bei 0 anfängt
do
echo -ne "\t${PARTITIONS[$element]} "
ID=$(disktype ${PARTITIONS[$element]} | awk '/file/ {print $1} /swap/ {print "swap"} /0x83/ { print "erweiterte Partition"} ')
#ID=$(sudo parted -s ${PARTITIONS[$element]} print 2> /dev/null | awk '/^ 1/ {print $NF}')
[ "$ID" == '' ] && ID="unbekannt"
echo $ID
done
echo -e "PATA Platten im System"
for i in /dev/disk/by-id/ata* ; do readlink -e $i; done | sort -u| grep -v -e '[0-9]$' | tr '\n' ' '
echo -e "\n"
echo -e "SATA Platten im System"
for i in /dev/disk/by-id/scsi* ; do readlink -e $i; done | sort -u| grep -v -e '[0-9]$' | tr '\n' ' '
echo -e "\n"
-
tobiasd
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von tobiasd » 15.09.2011 16:15:48
Vielen dank. Problem über einen Array gelöst
blacklisted=(
spam@mail.net ......)
for i in ${blacklisted[@]}
do
blacklistuser=${i}