Har en uppgift här som jag skulle behöva lite hjälp med, den lyder så här:
Create a shell program called swap. The program should simply swap the names of two files. The names of the files that are to be swapped should be given as arguments, for example the command
swap file1 file2
should have the result that you now find the content of file1 in file2 and vice versa. The program shall only try to swap the names of ordinary files and not for directories or special files. A check for that has to be done.
Men läraren sa att jag hade rätt tänk, men svaret var inte helt godkänt.
Så här skrev han :
Du har tänkt rätt i swap-funktionen, men programmet ska ta två inparametrar till programmet och det ska göras en felkontroll så att det är två filer som byter namn.
Googlar du så är det inte särskilt svårt att hitta svar, du vill ju göra två saker, använda argument från kommandot som variabler i programmet och köra en kontroll av att argumenten är korrekta filer.
Så jag tycker nog att du ska göra ett försök själv för att lära dig, men presenterar ändå ett lösningsförslag:
Kod:
#!/bin/sh
if [ -f "$1" ]&&[ -f "$2" ]
then
mv $1 temp
mv $2 $1
mv temp $2
fi
__________________
Senast redigerad av miklon 2009-07-21 kl. 13:23.
Anledning: Några missade mellanslag
För att skapa temporära filer rekommenderar jag kommandot mktemp. Kollisioner undviks och den temporära filen skapas i /tmp istället för i arbetskatalogen.
Kod:
#!/bin/sh
if [ -f $1 -a -f $2 ]; then
tmp=`mktemp`
mv $1 $tmp
mv $2 $1
mv $tmp $2
fi
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!