Guten Morgen in die Runde, 

Ich habe ein Problem mit einem Script, die Ausgabe via echo funktioniert wunderbar. Nur der Befehl cp tut nicht, was er soll.

Hat jemand eine Idee? Vielen Dank im Voraus.

 

#!/bin/sh

#  labFinder.sh
#
#
# .*8310 sucht Satzart anforderungsident
# Kopiere Datien mit Treffer & Schreibe eine Liste mit  "offen"
# 
# Vari's
# aID = #lese csv ein
# sA = Satzarzt

#anz=$(wc -l fehlend.csv)
#myOut=/Users/jens/Documents/zzz_Befunde
#myIn=/Users/jens/Desktop/Archiv


sA=0178310

fehlt="fehlend.csv"
myCounter=0
while read line
do
   aID[$myCounter]=$line
   let myCounter++
done < "$fehlt"
let myCounter--
for (( i=0 ; i<=$myCounter; i++))
do

set myKriebel=$(grep -l ${sA}${aID[$i]} /Users/jens/Desktop/Archiv/*)

   if  ${myKriebel} 
   
   then
    	echo ${1} 
   		cp -f ${myKriebel}  /Users/jens/Documents/zzz_Befunde/${sA}${aID[$i]}+.ldt
   			
   else
   		echo " fehlt"	

   fi
   
   unset
done

 

Gefragt von (1.2k Punkte)
Bearbeitet von
0 Punkte
Mahözeit. Ichn muss vorab zugeben,. dass ich keine Ahnung vom Prorgamieren habe, allerdings ist mit aufgefallen, dass Sie anfangs die Variable "zaehler" verwenden, danach nur noch "zeahler". Könnte es dammit zusammenhängen ?

Grüße
Vielen Dank für Ihre Anmerkung, daran liegt es leider nicht, ich hatte heute Morgen (ohne Café) nur versehentlich dass "Urscript" einkopiert.

3 Antworten

versuchen sie mal die Raute vor dem "cp" wegzulassen
Beantwortet von (3.4k Punkte)
+1 Punkt
Entschuldigen Sie bitte, das war mein Fehler. Die Zeile hatte ich nur auskommentiert, um zu prüfen, ob es sonst läuft. Natürlich ist im Script die # nur vor Kommentaren.
Hallo,

 

ich würde mal echo vor den cp-Befehl schreiben und prüfen, ob auch alle Variablen erwartungsgemäß interpoliert werden.

Vielleicht muss ${myKriebel} in Anführungszeichen gesetzt werden.

 

Viel Erfolg,

Björn Albers
Beantwortet von (800 Punkte)
+1 Punkt

Vielen Dank an Alle,

grep & Co. sind vorhanden als  GNU und BSD Version, die Bash habe ich mir via Homebrew gezogen und dann mit "--with-default-names" wieder ein GNU auf mein Mac installiert, das macht mir die Arbeit definitiv leichter. 

 

sA=0178310

fehlt="fehlend.csv"
myCounter=0

while read line
do
   aID[$myCounter]=$line
   let myCounter++
done < "$fehlt"
let myCounter--
for (( i=0 ; i<=$myCounter; i++))
do

set myKriebel=$(grep -l ${sA}${aID[$i]} /Users/jens/Desktop/Archiv/*)

   if   $myKriebel
   
   	then
   	#echo ${myKriebel}

   	
  	  cp -fv ${myKriebel}  /Users/jens/Documents/zzz_Befunde/${i}${aID[$i]}.ldt
   	
   	else
   	 	echo ${sA}${aID[$i]} >> /Users/jens/Documents/zzz_Befunde/offen.txt
   
   fi
   
   unset
done

Danke nochmals, Problem gelöst.

 

VG

Jens 

Beantwortet von (1.2k Punkte)
0 Punkte
6,208 Beiträge
10,636 Antworten
14,145 Kommentare
2,537 Nutzer