programmera.net -> linux -> normal     för utskrift      info@programmera.net

Mångradiga kommandon

1. Script med kommandon på många rader

1. Script med kommandon på många rader

Ibland blir man tvungen att skriva ett shellscript som innehåller ett kommando som måste köras på många rader, där man faktiskt vill att kommandot ska få in "radbrytningen" så att man simulerar en användare som knappar in text och trycker på ENTER. Detta kan man göra med kommandot "<<". Vi skapar en fil "test_multi_line_command.sh" med följande innehåll:

echo "=== Starting multi line command test ===="
sqlplus scott/tiger << eof
select * from dual;
eof
echo "===== Finished ========"
Kommandot "<<" ser till att efterföljande text läses in som om det vore en textfil. Det första ordet efter "<<" (i vårt fall "eof") bestämmer vilket nyckelord som avslutar inmatningen. När sedan "eof" påträffas igen (i detta fall direkt efter SQL-satsen) avslutas inmatningen. Vi får följande utskrift när vi kör scriptet:
[olle@dev1]$  sh test_multi_line_command.sh
=== Starting multi line command test ====

SQL*Plus: Release 8.0.6.0.0 - Production on Tue Jan 2 13:48:34 2007

(c) Copyright 1999 Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production

SQL>
D
-
X

SQL> Disconnected from Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
===== Finished ========