Ich bin ein Neuling in Sachen Linux-Befehlszeilen. Ich habe gerade von anderen einen Befehl zur Warteschlangenübermittlung erhalten. Die Befehlszeile lautet wie folgt:
qsub --cwd `pwd` -t 60 -n 1 --proccount 1 --mode c1 --env LD_LIBRARY_PATH=${FOAM_LIBBIN}:${FOAM_LIBBIN}/dummy:WM_PROJECT_DIR=${WM_PROJECT_DIR} ${FOAM_APPBIN}/blockMesh
Ich habe den Teil nicht ganz verstanden --cwd `pwd`
. Ich weiß, dass die folgenden Parameter mit Zeit, Knoten, Prozessoren und ausführbaren Dateien zusammenhängen. Kann mir jemand erklären, was das --cwd `pwd`
bedeutet?
Antwort1
Es ist wahrscheinlich sinnvoll, qsub
den Befehl im aktuellen Arbeitsverzeichnis auszuführen.
pwd
ist der Shell-Befehl „Arbeitsverzeichnis drucken“, der lediglich Ihr aktuelles Arbeitsverzeichnis angibt. Wenn Sie diesen Befehl in „Backticks“ setzen, weist die Shell die Shell an, diesen Befehl in einer Unter-Shell auszuführen und ihre Ausgabe an dieser Stelle in die Befehlszeile einzufügen. Wenn Sie sich also gerade in befanden, /home/jerry
als Sie die Befehlszeile eingegeben haben qsub
, würde die Befehlszeile wie folgt aussehen qsub --cwd /home/jerry
:
In einigen Versionen von qsub
gibt es eine -cwd
Option, die kein Argument akzeptiert und immer anweist, qsub
den Befehl im aktuellen Arbeitsverzeichnis auszuführen. Es sieht so aus, als ob Ihre Version von qsub
eine Option hat --cwd
, die ein Argument akzeptieren kann und dieses Argument vielleicht als Pfad verwendet, in den „ cd
hinein“ (d. h. als Arbeitsverzeichnis festgelegt) der Befehl ausgeführt wird. Oder vielleicht funktioniert Ihr System qsub
nicht wirklich so, aber derjenige, der Ihnen diesen Befehl gegeben hat, dachte fälschlicherweise, es würde so funktionieren.