/ / usa il comando time in bash script e reindirizza l'output - bash, redirect, time

utilizzando il comando time in bash script e reindirizzare l'output - bash, reindirizzamento, ora

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 № 1

Se 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.