Sulla riga di comando, ottengo questo:
$ FOO=foo
$ echo $FOO
foo
$ echo $$FOO
11971FOO
Qui, $$ risolve il PID del guscio come previsto e "foo" viene stampato testualmente.
Ora, cercando di capire ed eseguire il debug alcuni script, trovo il seguente:
#!/bin/bash
FILE1=/path/to/file/1
FILE2=/path/to/file/2
echo $$FILE1 >> $$FILE2
Lo script in questione proviene da uno script di postinstallazione di un pacchetto Debian. Questo dovrebbe essere sottoposto a pre-elaborazione prima che possa funzionare?
Update: Lo script è parte di un pacchetto costruito con EPM e leggere tramite la seguente direttiva:
%postinstall <script.sh
Nel pacchetto deb risultante, lo script postinst legge:
#!/bin/bash
FILE1=/path/to/file/1
FILE2=/path/to/file/2
echo $FILE1 >> $FILE2
Pertanto, l'elaborazione viene eseguita da epm o dpkg.
Per me, questo è un modo per creare una directory il cui nome non collide con nessuno esistente. – fedorqui
Se si tratta di uno script vero e proprio, è quasi certamente destinato a essere post-elaborato. È impossibile dirlo con certezza, però, senza più contesto. – chepner
Er, preelaborato. – chepner