[linux] Re: shell vraagje

Daniel von Asmuth asmuth op bakunin.xs4all.nl
Ma Jul 25 13:03:14 CEST 2011


Aldus schreef Hans Paijmans op Mon, Jul 25, 2011 at 12:00:30PM +0200:
> even tussendoor: hoe kan ik in een shellscript zien of het script met
> redirectie is aangeroepen?
> (het verschil dus tussen 'sh bla < blabla' en 'sh bla')

Mijn eerste gedachte is: het staat niet in de manual, dus het kan niet.
Om een programma te starten zal de shell eerst een fork (2) doen, dan
de in- en output redirects doen met fdopen (3) of zo en dan met een van
de exec (3) of clone (2) functies het programma uitvoeren. 

Bij wijze van proef heb ik een scriptje gemaakt met

	echo "Goedenmaandag, Paai"
	lsof -p $$
	exit 0 

In de output zien we regels met in de File Descriptor kolom de 
getallen 0 voor standard input, 1 voor standard output, 2 voor
standard error. Als die file descriptors niet zijn geredirect,
dan verwijzen ze (op mijn Linux doosje) naar /dev/pts/0 (1,2, 3...)
/dev/tty1 (2, 3, ...) of zo. Als het script is geredirect, dan 
zal FD 0 dus file 'blabla' bevatten.


Groeten uit Nuth,


Daniel von Asmuth

-- 
	
		People who bought this story also bought....



More information about the Linux mailing list