Saya sering menulis skrip shell KSH yang mengikuti pola yang sama:
- (1) mengambil output dari satu atau lebih perintah
- (2) format menggunakan grep | cut | awk | sed dan cetak ke layar atau ke file
Untuk melakukan itu, saya sering menyimpan output (1) di tempfile, dan kemudian melakukan format di (2) pada file itu.
Ambil kode itu misalnya:
TMPFILE=file.tmp
# If tmpfile exists rm it.
[ -f $TMPFILE ] && rm -f $TMPFILE
for SERVICE in $(myfunc); do
getInfo $SERVICE > $TMPFILE # Store raw output in the TMPFILE
# I retrieve the relevant data from the TMPFILE
SERV_NAME=$(head -1 $TMPFILE | sed -e 's/ $//')
SERV_HOSTNAME=$(grep HOSTNAME $TMPFILE | cut -d "=" -f2)
SERV_ARGS=$(grep Arguments $TMPFILE | cut -d ":" -f2)
print $SERV_NAME $SEP $SERV_HOSTNAME $SEP $SERV_ARGS
rm -f $TMPFILE #rm the TMPFILE in vue of next iteration
done
Apakah ada cara, menggunakan pipa, pengalihan dan whatnots, untuk menghindari menulis file ke disk setiap kali?
Jika ini membantu, saya menggunakan ksh Versi M-11/16 / 88i
PATH
atau variabel shell atau lingkungan lainnya.TMPFILE
mungkin baik-baik saja, tetapiTMPDIR
spesial, jadi apakah Anda benar-benar ingin berjalan di atas tali itu?