bash: sed -i vermeldt fout maar gaat nergens anders fout??

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Mar2zz
  • Registratie: September 2007
  • Laatst online: 20-08 07:53
Ik ben bang dat ik iets vreselijk over het hoofd zie... Maar ik ben nu al zo gaar van het proberen en proberen ik wordt er helemaal lam van...

Ik heb een script dat aangepast moet worden via input in een ander script, in dit eerste script heb ik in eerdere functies al wat dingen succesvol aangepast met sed -i.

Nu wil ik een naam opgeven om mee te prefixen en cp dan het script met de prefix ervoor: cp $PREFIX-bestandsnaam. Daarna moet sed nog het pad en aanpassen en een nummer. maar dat gaat mis, output terminal sed: command not found. Slaat nergens op (volgens mij) want het bestand met de prefix erin en dergelijke bestaat gewoon en de te vervangen termen erin ook. Als ik in plaats van sed de boel echo dan staat er ook precies wat de bedoeling is, dus alle paden zijn correct...

De boosaardige functies:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
SCANPATH=scanPath.sh;
INSTALLDIR=/home/$USER/test;
        
        
        Question_Path() {
        read -p "(yes/no)   :" REPLY
        case $REPLY in
            [Yy]*)
                echo
                read -p "Give a name to this search (e.g. Movies)  :" PREFIX
                echo "Creating batchfile $PREFIX-$SCANPATH in $INSTALLDIR..."
                cp $INSTALLDIR/$SCANPATH $INSTALLDIR/$PREFIX-$SCANPATH &&
                sudo chmod +x $INSTALLDIR/$PREFIX-$SCANPATH &&
                set_Path
                ;;
            [Nn]*)
                
                ;;
            *)
                echo "Answer yes or no"
                Question_Path
                ;;
        esac
        }
                
        set_Path () {
        echo
        echo 'Please specify the full path to your folder containing moviefiles'
        echo "e.g. /home/$USER/Videos"
        read -p ":" PATH
            if [ -d $PATH ]
                then
                sed -i "s#/PATH/TO/VIDEOS#$PATH#g" $INSTALLDIR/$PREFIX-$SCANPATH
                set_Age 
            else
                echo "$PATH doesn't exist, try again"
                set_Path
            fi
        }
            
        set_Age () {
        echo
        echo 'Please specify how many days back Periscope should search for'
        echo "e.g. 7"
        read -p ' :' AGE
            if [ $AGE -eq $AGE 2> /dev/null ]
                then
                sed -i "s/AGE_DAYS/$AGE/g" $INSTALLDIR/$PREFIX-$SCANPATH
                set_Cron    
            else
                echo "$AGE is not a numeric value, try again"
                set_Age     
            fi
        }
Question_Path


Als ik bovenstaande functies even test met de files op de juiste plek dan krijg ik dus:
./tester: regel 34: sed: opdracht niet gevonden

Maar dit is toch een valide sed opdracht?

een paar functies ervoor doe ik er tig achter elkaar en dat gaat prima...

Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 15:57
Hij kan het commando 'sed' niet vinden. Oorzaak: niet geïnstalleerd, niet in PATH. Gebruik anders een volledig path (iets als /usr/bin/sed).

Edit: op regel 30 gaat dat dus fout.

[ Voor 12% gewijzigd door Raynman op 30-01-2011 22:51 ]


Acties:
  • 0 Henk 'm!

  • JoetjeF
  • Registratie: Juni 2003
  • Laatst online: 10-11-2012

JoetjeF

Mo Chuisneoir

PATH is the variable met de paden die bash afzoekt als het een programma wil opstarten, het bevat dus ook de pad naar het 'sed' commando.

In regel 30 verander je PATH dus ;)

[ Voor 24% gewijzigd door JoetjeF op 30-01-2011 22:51 ]


Acties:
  • 0 Henk 'm!

  • Mar2zz
  • Registratie: September 2007
  • Laatst online: 20-08 07:53
aahhhha aaaah aaaargh!!!!! FUUUUUUUUUuuuuuuu

jemig... thx... dit is minder dom van mij dan toen ik eergisteren mijn file in dropbox aan het editten was en de lokale steeds uitvoerde om te testen of de extra code werkte en maar kwaaier worden omdat het niet ging...

Nou weer wat geleerd... Dat leren gaat in notime zo... haha ;)