Sto cercando di scrivere uno script che faccia
x =$ncore
numactrl -C $x ( time -p $exe ) > out.txt 2>&1
sul terminale (time $ exe)> out.txt 2> & 1 ha funzionato come volevo (out.txt contenente l'output di tempo ed eseguibile)
sto usando red hat 6.2 e il tempo non è la versione GNU (sto assumendo dal fatto che -a -o le opzioni non funzionano)
voglio out.txt per avere output dal file eseguibile e alla fine avere output dal comando time.
lo script di bash mi dà problemi con l'avere (così ho usato (time -p $ exe) e ora numactl vede (come l'eseguibile.
c'è un modo per usare insieme numactl e time command e avere l'output che voglio?
risposte:
2 per risposta № 1Se numactrl
vuole un comando, ma tu vuoi usare alcune caratteristiche della shell, dagli semplicemente la shell come comando:
numactrl -C $x bash -c "( time -p $exe ) > out.txt 2>&1"
Quando corritime -p $exe
da un prompt di bash o all'interno di a bash -c
, stai usando la versione di tempo incorporata di bash, quella con il -o
l'opzione è un comando esterno, quindi per usarlo da bash devi specificare command time
o /bin/time
o /usr/bin/time
.
Se corri numactrl -C $x time ...
allora probabilmente esegue il comando esterno, quindi -o
dovrebbe funzionare in quel caso, ma se no allora hai sempre il bash -c
metodo.
Si noti che il formato di output è diverso tra le varie versioni di time
. La versione GNU coreutils stampa più informazioni rispetto alla versione incorporata di bash.