2017-07-14 6 views
1

Sorry, ich komme aus Brasilien und mein Englisch ist nicht fließend.Problem beim Verketten von Dateien shellscipt

Ich möchte 20 Dateien mit einem Shellskript über Cat-Befehl verketten. Wenn ich es jedoch aus einer Datei starte, werden alle Inhalte der Dateien auf dem Bildschirm angezeigt.

Wenn ich es direkt vom Terminal ausführen, funktioniert perfekt.

, dass mein Code oben ist:

#!/usr/bin/ksh 

set -x -a 
. /PROD/INCLUDE/include.prod 
DATE=`date +'%Y%m%d%H%M%S'` 
FINAL_NAME=$1 

# check if all paremeters are passed 

if [ -z $FINAL_NAME ]; then 
    echo "Please pass the final name as parameter" 
    exit 1 
fi 

# concatenate files 

cat $DIRFILE/AI6LM760_AI6_CF2_SLOTP01* $DIRFILE/AI6LM761_AI6_CF2_SLOTP02* $DIRFILE/AI6LM763_AI6_CF2_SLOTP04* \ 
$DIRFILE/AI6LM764_AI6_CF2_SLOTP05* $DIRFILE/AI6LM765_AI6_CF2_SLOTP06* $DIRFILE/AI6LM766_AI6_CF2_SLOTP07* \ 
$DIRFILE/AI6LM767_AI6_CF2_SLOTP08* $DIRFILE/AI6LM768_AI6_CF2_SLOTP09* $DIRFILE/AI6LM769_AI6_CF2_SLOTP10* \ 
$DIRFILE/AI6LM770_AI6_CF2_SLOTP11* $DIRFILE/AI6LM771_AI6_CF2_SLOTP12* $DIRFILE/AI6LM772_AI6_CF2_SLOTP13* \ 
$DIRFILE/AI6LM773_AI6_CF2_SLOTP14* $DIRFILE/AI6LM774_AI6_CF2_SLOTP15* $DIRFILE/AI6LM775_AI6_CF2_SLOTP16* \ 
$DIRFILE/AI6LM776_AI6_CF2_SLOTP17* $DIRFILE/AI6LM777_AI6_CF2_SLOTP18* $DIRFILE/AI6LM778_AI6_CF2_SLOTP19* \ 
$DIRFILE/AI6LM779_AI6_CF2_SLOTP20* > CF2_FINAL_TEMP 

mv $DIRFILE/CF2_FINAL_TEMP $DIRFILE/$FINAL_NAME 
+0

, was Sie bedeuten kann. „Wenn ich es aus einer Datei ausführen, werden alle Inhalte von Dateien auf dem Bildschirm gezeigt werden“ ? –

+0

Können Wildcards wie 'cat $ DIRFILE/AI6LM7 [67]? _ AI6_CF2_SLOTP *'? –

Antwort

0

Ich löste das Problem in einer Funktion, die Katze Block setzen, und stdout auf die endgültige Datei umgeleitet werden.

Ex: verketten()

Verwandte Themen