Filer och kataloger vars namn börjar med två bindestreck (−−)

I många kommandon, till exempel cd så avnänds strängen -- som prefix till kommandoradflaggor. Detta innebär att om man man har en fil eller katalog vars namn börjar med -- så får man problem. Till exempel ger cd --exempelkatalog följande resultat:

~$ cd --exempelkatalog
bash: cd: --: ogiltig flagga

Lösningen är att innan filnamnet ange ytterliggare ett -- framför. Det betyder att man har angett alla kommandoradsflaggor man önskat och att allt till höger om -- skall tolkas som filnamn. Den korrekta kommandoraden för att växla till katalogen --exempelkatalog blir därför

~$ cd -- --exempelkatalog
~/exempelkatalog$ 

Gå tillbaka till början av en rad i en screen-session

När man använder bash så är den normala tangentbordsgenvägen för att gå till början på en rad CTRL-a. Om man däremot är inne i en screen-session så fungerar detta normalt inte eftersom CTRL-a normalt används som prefix för att ge kommandon till screen. Som tur är så är lösningen väldigt enkel: Ange bara kommandot CTRL-a a istället. (Observara att till skillnad från övriga screenkommandon så är detta kommando skilt från CTRL-a CTRL-a som används för att skifta mellan fönster.) Se manualen till screen för mer information.

Läsa sista raden i en fil som saknar end of line före end of file

Om man läser in en fil rad för rad i ett bash-skript med hjälp av en loop enligt följande exempel

 while read line; do
 echo "$line"
 done < filename.txt
 

och filen avslutas utan ett nyradstecken så kommer inte den sista raden att behandlas. När kommandot read når end-of-file utan att först ha stött på end-of-line så avslutas det med en annan exitkod. Detta gör att loopens sista varv inte körs. Dock så finns värdet kvar i variablen $line så det går att nå det som ett specialfall.

Förslag på implementeringar som löser detta problem ges i följande referenser:

  1. http://stackoverflow.com/questions/4165135/how-to-use-while-read-to-read-the-last-line-in-a-file-if-theres-no-newline-at-t
  2. http://linux.derkeiler.com/Mailing-Lists/SuSE/2008-11/msg00237.html