---
title: "Hjälp med bash script"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/191308-hjälp-med-bash-script"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Nate.A"
published: "2013-04-18T08:25:31.000Z"
updated: "2013-04-18T13:17:09.000Z"
replies: 2
views: 1237
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/191308-hjälp-med-bash-script"
---

# Hjälp med bash script

## #1 — Nate.A, 2013-04-18T08:25Z

Hej!

Vi har haft en utvecklingsserver (LAMP m. Debian) på kontoret några månader nu och jag tänkte klämma lite mer nytta ur den via ett enkelt bash script som ska kontrollera om kunders servrar är tillgängliga men jag får inte till det riktigt.

Själva kontrollen fungerar men variablerna index, count och sites är tomma trots att en server är nere. Vad har jag gjort för fel? 

```
#!/bin/bash

FILENAME="/var/www/check_these_servers.txt"
COUNT=0
INDEX=0
SITES=""

cat $FILENAME | while read LINE
do
	if curl -s --head $LINE | grep "200 OK" > /dev/null
		then 
			echo "$LINE OK!"
		else
			echo "$LINE DOWN!"
			# add count errors
			COUNT=$[$COUNT + 1]
			SITES="$LINE, $SITES"
	fi
	INDEX=$[$INDEX + 1]
done
	
echo "$INDEX Servers checked, $COUNT servers failed ($SITES)"
	
if [ $COUNT -gt 0 ]
	then
		echo "Hej\n\nServrar ligger nere!\n\n\n$SITES" | mail -s "$COUNT server är nere" min.mai@foretaget.se
fi
```

Permalänk: https://www.webforum.nu/p/191308

## #2 — i2n2, 2013-04-18T11:56Z

Motsvarande problem, med lösning och referens till manualen som förklarar detta "varable scope" problem finns t.ex på

<http://stackoverflow.com/questions/124167/bash-variable-scope>

Permalänk: https://www.webforum.nu/p/2308746

## #3 — Nate.A, 2013-04-18T13:17Z

Tack! Nu funkar det. :)

```
FILENAME="/var/www/check_these_servers.txt"
let COUNT=0
let INDEX=0
SITES=""

while read LINE
do
	if curl -s --head $LINE | grep "200 OK" > /dev/null
		then 
			echo "$LINE OK!"
		else
			echo "$LINE DOWN!"
			# add count errors
			let COUNT++
			SITES="$LINE\n$SITES"
	fi
	let INDEX++
done < $FILENAME
	
echo "$INDEX Servers checked, $COUNT Servers failed"
	
if [ $COUNT -gt 0 ]
	then
		echo -e "Servrar offline!\n$SITES" | mail -s "$COUNT server(s) offline" min.mail@foretaget.se
fi
```

Permalänk: https://www.webforum.nu/p/2308749

---

Tråden på webben: https://www.webforum.nu/amne/programmering/191308-hjälp-med-bash-script
