Langzaamaan begin ik nog gekker te worden dan ik al was... Het verhaal is simpel: via een simpel scriptje met een "vraag-antwoord spelletje" wil ik een linux server een configuratie voor een Cisco laten ophoesten en deze per mail versturen naar een emailadres. Een klein stukje:
Zoals je ziet staat er overal \r achter om een carriage return te geven. Maar wat wil nu het geval, de mail lijkt zich er bar weinig van aan te trekken, want zo zie ik hem in mijn mailbox:
service timestamps debug datetime msec localtime show-timezone service timestamps log datetime msec localtime show-timezone service password-encryption service compress-config ! hostname asdf ! boot-start-marker boot-end-marker ! card type e1 0 0 logging buffered 32768 debugging
Maar wanneer ik hem naar een textfile redirect i.p.v. mailx, dan lijkt de \r goed te werken:
Ik had het quick and dirty opgelost door een horizontal tab (\t) voor de \r te doen, maar ook Cisco vind net als bash een tab erg handig voor command-completion. Vervang ik de \r voor een \n, dan krijg ik in mijn mail tussen elke regel gratis een lege regel, ook niet echt handig..
Google heb ik al geprobeerd ondersteboven te halen, maar het lukt me niet om een werkend antwoord boven water te krijgen, dus daarom hier de vraag!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #!/bin/sh echo "----------------------------" echo "This template is for configuring a Cisco" echo "----------------------------" echo -en "Hostname of router: "; read DEVICEHOST echo -en "Location of this device: "; read DEVICELOC echo -en "Enter IP address and subnetmask of LAN interface (i.e. 10.0.0.1 255.0.0.0): "; read DEVICEIP <...> printf " service timestamps debug datetime msec localtime show-timezone\r service timestamps log datetime msec localtime show-timezone\r service password-encryption\r service compress-config\r !\r hostname $DEVICEHOST\r !\r boot-start-marker\r boot-end-marker\r !\r card type e1 0 0\r logging buffered 32768 debugging\r <...> end\r " | mailx -s "config $DEVICEHOST" email.adress@domein |
Zoals je ziet staat er overal \r achter om een carriage return te geven. Maar wat wil nu het geval, de mail lijkt zich er bar weinig van aan te trekken, want zo zie ik hem in mijn mailbox:
service timestamps debug datetime msec localtime show-timezone service timestamps log datetime msec localtime show-timezone service password-encryption service compress-config ! hostname asdf ! boot-start-marker boot-end-marker ! card type e1 0 0 logging buffered 32768 debugging
Maar wanneer ik hem naar een textfile redirect i.p.v. mailx, dan lijkt de \r goed te werken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| [whizzer@server ~]$ more /tmp/bla.txt service timestamps debug datetime msec localtime show-timezone service timestamps log datetime msec localtime show-timezone service password-encryption service compress-config ! hostname asdf ! boot-start-marker boot-end-marker ! card type e1 0 0 logging buffered 32768 debugging |
Ik had het quick and dirty opgelost door een horizontal tab (\t) voor de \r te doen, maar ook Cisco vind net als bash een tab erg handig voor command-completion. Vervang ik de \r voor een \n, dan krijg ik in mijn mail tussen elke regel gratis een lege regel, ook niet echt handig..
Google heb ik al geprobeerd ondersteboven te halen, maar het lukt me niet om een werkend antwoord boven water te krijgen, dus daarom hier de vraag!
Ik ben geweldig.. en bescheiden! En dat siert me...