Snažím sa spustiť bash skript vo vnútri iného bash skriptu pomocou qsub (pretože musím spustiť skutočný problém na klastri).
Tu je ukážka tohto problému. Mám dva skripty nasledovne:
Skript 1:
#!/bin/bash -f
sh ./script2.sh
Skript 2:
#!/bin/bash
echo "It works fine!"
Teraz, keď vložím tieto dva skripty do priečinka a použijem príkaz sh script1.sh
, bude to fungovať dobre. Ale ak na jeho spustenie použijem príkaz qsub qsub script1.sh
dôjde k chybe:
sh: ./script2.sh: Žiadny takýto súbor alebo adresár
Ako ho môžem opraviť?
odpovede:
0 pre odpoveď č. 1Na definovanie cesty pracovného adresára, ktorá sa má použiť pre voľbu job -d môže byť použité. Ak nie je zadaný, predvolený pracovný adresár je domovský adresár.
Skontrolujte svoj pracovný adresár.
#!/bin/bash -f
echo "Working directory is $PWD"
sh ./script2.sh
Môžeš použiť -d
možnosť tento problém vyriešiť.
qsub -d <working directory> script1.sh