Saya mencoba membuat skrip modular. Saya memiliki beberapa skrip / perintah yang dipanggil dari satu skrip.
Saya ingin awalan output dari setiap perintah yang terpisah.
Memeriksa:
File saya adalah allcommands.sh / command1.sh / command2.sh
output command1.sh
file exists
file moved
output command2.sh
file copied
file emptied
allcommands.sh menjalankan skrip command1.sh dan command2.sh
Saya ingin mengawali setiap output dari dua skrip ini seperti ini:
[command1] file exists
[command1] file moved
[command2] file copied
[command2] file emptied
linux
command-line
bash
shell
bash-scripting
Ivan Dokov
sumber
sumber
sed "s/\^/command1 /"
sed
fungsinya. Maafkan saya.Jawaban:
Saya berasumsi bahwa apa yang Anda lakukan di allcommands.sh Anda adalah:
Relace saja dengan
sumber
Contoh minimal
allcommands.sh
:Dengan
command1.sh
dancommand2.sh
dapat dieksekusi dan dalam direktori yang sama hanyaecho
dengan string yang diinginkan, ini memberikan output shell:sed
Kerusakan cepats/
memasuki mode "regexp pattern match and replace"^/
berarti "cocok dengan awal setiap baris"${i%.sh}
terjadi dalam konteks shell dan berarti "$i
, tetapi menghapus akhiran.sh
"['"${i%.sh}"'] /
pada awalnya mencetak a[
, kemudian keluar dari konteks yang dikutip untuk mengambil$i
variabel dari shell, kemudian masuk kembali untuk menyelesaikan dengan]
dan spasi.sumber