• CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 07:51

CrankyGamerOG

Assumption is the mother.....

Topicstarter
Ik wil iets bereiken met een IF statement, en heb de hele manpage doorgelezen maar ik kom er niet uit.

Op een groep servers wil ik weten wel OS erop draait, nu word er bij verschillende distro's op verschillende plekken het OS opgeslagen
(bij Slack ware is het bij /ets/slackware-version, bij redhat bij /etc/redhat-release, etc etc)

echo "`cat /etc/release`"
echo "`cat /etc/redhat-release`"
echo "`cat /etc/slackware-version`"


Nu spuugt hij uiteraard met de hierboven code, 2x een no such file or directory uit, en met 1 reageert hij dan goed.
[root@gateway htdocs]# sh test.sh 
ClarkConnect Community Edition release 5.0
CentOS release 5.3 (Final)
cat: /etc/slackware-version: No such file or directory


root@s01:/# sh test.sh 
cat: /etc/release: No such file or directory
OS: 
cat: /etc/redhat-release: No such file or directory
OS2: 
OS3: Slackware 10.0.0


Hoe filter ik het resultaat uit zodat hij alleen de juiste laat zien, maar wel de 2 andere ook laat controleren?

Kan dit uberhaupt met een IF statement?
am i barking up the wrong tree

KPN - Vodafone Ziggo Partner


  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 26-01 13:29
Door stderr naar /dev/null te redirecten? Dus cat bla 2>/dev/null

  • user109731
  • Registratie: Maart 2004
  • Niet online
Die foutmelding komt op stderr. Dus die zou ik gewoon redirecten naar /dev/null:
cat /some/file 2> /dev/null
cat /some/other/file 2> /dev/null

Dat zou moeten werken :)

  • cherwin
  • Registratie: Maart 2006
  • Niet online
Dit moet in NOS, anyway
code:
1
2
3
4
5
6
7
for file in file1 file2 file3
do
    if [ -f $file ]
    then
        command
    fi
done

Het kan nog beter maar dit is ongeveer het idee.
JanDM schreef op maandag 19 oktober 2009 @ 11:54:
Die foutmelding komt op stderr. Dus die zou ik gewoon redirecten naar /dev/null:
cat /some/file 2> /dev/null
cat /some/other/file 2> /dev/null

Dat zou moeten werken :)
Dat werkt ook, is alleen ranzig.

[ Voor 47% gewijzigd door cherwin op 19-10-2009 11:55 ]

Tell me your problem, not the solution you think I should build for you.


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Kun je niets met de uitvoer van uname?
Bash:
1
uname -a


Verder, wat cherwin zegt.

ASSUME makes an ASS out of U and ME


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
cherwin schreef op maandag 19 oktober 2009 @ 11:55:
Dit moet in NOS, anyway [code]for file in file1 file2 file3
^^ Idd, zie Waar hoort mijn topic?

PRG -> NOS

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:51

Kees

Serveradmin / BOFH / DoC
H!GHGuY schreef op maandag 19 oktober 2009 @ 11:58:
Kun je niets met de uitvoer van uname?
Bash:
1
uname -a


Verder, wat cherwin zegt.
uname -a geeft niet zoveel terug over welke distro er draait, veel meer dan
Linux alecto 2.6.30-2-amd64 #1 SMP Fri Sep 25 22:16:56 UTC 2009 x86_64 GNU/Linux

krijg je daar niet uit.

Verder moet je inderdaad testen of de file bestaat voor je hem leest
Zie voor meer informatie: http://tldp.org/LDP/abs/html/index.html
en dan met name: http://tldp.org/LDP/abs/html/fto.html

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan

Pagina: 1