kode skrip shell penjelasan "untuk loop"

-1

Adakah yang bisa menjelaskan untuk saya untuk apa loop ini digunakan, atau cara kerjanya?

for file in `ls *SC*`; do 
  for content in `cat $file `; do
    scid=`echo $file|awk -F'.' '{print $1}'`
    printf "%-10s%s\n" $scid $content
  done
done > text1
Mariwan
sumber
Apakah Anda menambahkan ** di awal dan akhir kode? Dan ini untuk bash di Linux?
Xen2050
tidak tanpa ** maaf kesalahan saya ketika saya mengubah ke format kode saya klik Bold sehingga ini muncul!
Mariwan
Ah, baiklah. Anda dapat mengedit & amp; perbaiki / ubah juga. Dan jika hanya untuk bash & amp; Linux Anda tidak memerlukan semua tag tambahan, itu bukan Unix, dan shell-script akan menjadi berlebihan
Xen2050

Jawaban:

-1

Kode ganjil, akan gagal jika nama file memiliki spasi, dan membagi file dengan spasi.

for file in `ls *SC*`; do # parses ls for files with SC in the name
    # - not the best way to do it (don't parse ls, fails if spaces in filename)
  for content in `cat $file `; do # copies file to $content, SEPARATED BY SPACES
    scid=`echo $file|awk -F'.' '{print $1}'` # cuts filename to first .(?)
    printf "%-10s%s\n" $scid $content # prints cut filename + content
  done
done > text1
Xen2050
sumber