GNU/Linux >> Belajar Linux >  >> Linux

Piping Daftar Nilai Ke Skrip Bash?

Saya punya naskah. myScript .

Dibutuhkan dua argumen. myScript arg1 arg2 .

Katakanlah saya memiliki tiga set argumen.

argA1 argB1
argA2 argB2
argA3 argB3

Apakah ada cara untuk menyalurkan setiap baris ke myScript. Saya terbuka untuk memiliki set args dalam file, mungkin menggunakan xargs. Tidak yakin apa yang harus diselidiki.

Jadi saya akan menjalankan perintah seperti contoh palsu di bawah ini:

cat myFile | xargs > myScript

Tidak memiliki skrip lain, cukup perintah di baris perintah.

Jawaban yang Diterima:

Hanya:

xargs -l1 <myFile myScript

-l1 memberitahu xargs untuk menjalankan myScript sekali untuk setiap 1 l salah satu input, dengan kata-kata di 1 itu l ine diteruskan sebagai argumen terpisah.

Untuk xargs , kata-kata dipisahkan dengan spasi, dan Anda masih dapat memiliki spasi (bahkan baris baru) dalam sebuah kata dengan menggunakan tanda kutip. Namun perhatikan bahwa while xargs mendukung "..." , '...' dan \ untuk mengutip seperti kebanyakan shell, parsingnya berbeda dari shell seperti Bourne. Secara khusus, tidak ada pemrosesan garis miring terbalik di "..." atau '...' dan hanya \ dapat keluar dari baris baru.

Misalnya, myFile dapat berisi:

word1.1 word1.2
"word 2.1" 'word 2.2'
"word'3.1" 'word"3.2'
'word"'"4'1" word\"4\'2
'word '\
5.1 "word "\
5.2

Dan

xargs -l1 <myFile printf 'First word: "%s", second word: "%s"\n'

akan menghasilkan:

First word: "word1.1", second word: "word1.2"
First word: "word 2.1", second word: "word 2.2"
First word: "word'3.1", second word: "word"3.2"
First word: "word"4'1", second word: "word"4'2"
First word: "word
5.1", second word: "word
5.2"

Dengan implementasi GNU dari xargs , Anda dapat meningkatkannya menjadi:

xargs -l1 -r -a myFile myScript

Yang memiliki manfaat meninggalkan stdin sendirian dan tidak menjalankan myScript jika myFile kosong.


Linux
  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Bagaimana Cara Men-debug Skrip Bash?

  3. Basa'?

  1. Skrip Bash - Contoh Halo Dunia

  2. Contoh Bash untuk loop

  3. Jalankan skrip bash sebagai daemon

  1. Tambahkan skrip bash ke jalur

  2. Skrip bash Linux untuk mengekstrak alamat IP

  3. Pencocokan pola skrip Bash