InggrisPerancisSpanyol

favorit OnWorks

makepp_builtins - Online di Cloud

Jalankan makepp_builtins di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah makepp_builtins yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


makepp_builtins -- Perintah bawaan di makepp

DESKRIPSI


A: Wow, C: &kucing,
chgrp,
&chmod,
chown,
&cp,
cpp,
&memotong, D: tanggal, E: &gema,
&exp, F: palsu,
fmt, G: & terima, H: kepala, I: &Install, L: &n, M: m4,
&mkdir,
&mv, P: &perl,
&praproses,
&cetakf, R: &rm,
adalah rm, S: &sed,
&menyortir, T: ekor,
&templat,
&menyentuh,
tr, U: &copot pemasangan,
&unik, Y: &Ya

Ada kemungkinan khusus seperti Shell untuk memanggil perintah bawaan dalam aturan. Satu-satunya
metakarakter yang dikenali adalah tanda komentar, garis miring terbalik, tanda kutip tunggal dan ganda. Hanya
satu perintah dapat diberikan per baris, dan pengalihan I/O tidak tersedia (lihat "-i" dan "-o"
di bawah sebagai gantinya).

Perintah-perintah ini dimulai dengan "&", yang merupakan karakter fungsi di Perl dan bukan yang valid
karakter pertama di Shell. Jika tidak ada perintah bawaan dari nama itu yang dapat ditemukan, ini juga
sintaks untuk memanggil skrip eksternal dalam instance Perl yang menjalankan aturan.
Lihat "lari".

Perintah-perintah ini, serta yang Anda tentukan sendiri dan skrip Perl juga dapat disebut sebagai
buat fungsi, mengembalikan output standar. Ini membutuhkan Perl untuk dibangun untuk PerlIO.
Baris baru diubah menjadi spasi, kecuali jika dievaluasi dalam pernyataan "define".

KATA PERTAMA ;= $(&cut -d' ' -f0 $(FILES))

Ketika perintah ini tidak diindentasi sebagai tindakan aturan, perintah tersebut dilakukan saat membaca
makefile. Anda juga dapat mengakses perintah ini berdiri sendiri, misalnya jika Anda memerlukan beberapa fitur
tidak tersedia di mitra Unix, melalui perintah makeppbuiltin.

Perintah-perintah ini sebagian besar didasarkan pada varian GNU. Tetapi banyak opsi (seperti --backup,
--interactive atau --recursive) tidak terlalu masuk akal dalam makefile. Jadi, meskipun
mereka akan mudah diterapkan di Perl, mereka telah ditinggalkan. Juga banyak perintah Unix
menawarkan berbagai pilihan yang mencakup kasus yang cukup rumit (misalnya bidang sortir
spesifikasi) sementara masih secara inheren terbatas. Mengizinkan akses ke Perl, yaitu
hadir pula, memberikan lebih banyak kekuatan di sini.

Daftar nama file mungkin kosong, sehingga aman untuk memanggil perintah ini dengan tanda centang
Daftar. Opsi dalam bentuk pendeknya dapat direkatkan seperti pada "-ab" alih-alih "-a -b".
Dalam bentuk panjang argumen dapat diberikan baik direkatkan dengan tanda "=" atau secara terpisah.
Dalam bentuk pendek mereka dapat diberikan baik direkatkan secara langsung atau secara terpisah.

Standar Pilihan
Beberapa opsi umum untuk beberapa bawaan, meskipun bentuk pendeknya terkadang disembunyikan oleh
opsi perintah sendiri (seperti dalam "&cut -f"):

-A nama file
--args-file=nama file
--argumen-file=nama file
Baca file dan uraikan seperti yang mungkin dikutip spasi-dan/atau dipisahkan baris baru
Pilihan.

-f
--memaksa
Paksa pembuatan file yang dimaksudkan oleh parameter, meskipun jenisnya berbeda
file atau direktori kosong dari nama itu sudah ada. Ini harus mendahului "-o,
--output=filename" opsi jika ingin memiliki efek pada itu.

-i perintah shell
--inpipe=perintah shell
Mulai perintah Shell dan pipa output ke file builtin. Ada mungkin opsional
menjadi tanda "|" karakter, untuk menunjukkan ini adalah pipa. Dengan opsi ini tidak
nama file perlu diberikan. Tetapi jika Anda ingin melakukan builtin pada kedua file dan
output pipa, Anda harus menggunakan "-" sebagai nama file untuk output pipa. pipa adalah
dikosongkan, tetapi, kecuali jika Anda juga memberikan "--infail", perintah tidak menunggu, jadi
dapat berakhir secara paralel. Opsi ini diperlukan karena tidak ada pengalihan
sintaks.

-I
--tidak gagal
Jika perintah Shell "--inpipe" gagal, itu juga menyebabkan kegagalan bawaan saat ini.
Ini saat ini tidak berfungsi di Strawberry dan Win ActiveState, karena
dengan setengah hati mereka meniru fork/exec Unix. Cygwin melakukannya dengan benar.

-o nama file
--keluaran=nama file
Tulis output ke file ini, bukan stdout. Nama file mungkin memiliki salah satu dari ini
formulir:

nama file
>nama file
Cukup tulis ke file.

>>nama file
Tambahkan ke (tidak harus) file yang ada.

+<nama file
Buka juga file untuk input, memungkinkan pengeditan di tempat. Dengan varian opsi ini
tidak ada nama file input yang perlu diberikan. Tetapi jika Anda ingin melakukan builtin on
lebih banyak file, Anda harus menggunakan "-" sebagai nama file input untuk yang satu ini. Sebenarnya
output akan ditulis ke file sementara yang dipindahkan ke nama file di akhir.

|perintah shell
Pipa output bawaan ke perintah Shell.

Opsi ini diperlukan karena tidak ada sintaks pengalihan.

-O
--kegagalan
Jika perintah Shell "--output" gagal, itu juga menyebabkan kegagalan bawaan saat ini.

-r jumlah
--ukuran-rekam=jumlah
Secara lokal menetapkan $/ untuk bawaan saat ini. Ini membagi input menjadi catatan panjang
jumlah daripada baris demi baris. Jika jumlah adalah nol, setiap file input secara keseluruhan adalah satu
record.

-s string
--pemisah=string
Secara lokal menetapkan $/ untuk bawaan saat ini. Ini membagi input pada string daripada garis
dengan garis.

-S
--sinkronisasi
Buat "#baris""TIDAK"" """MENGAJUKAN"""" dan "#baris""TIDAK" garis, dipahami oleh banyak orang seperti C
bahasa.

-v
--bertele-tele
Dokumentasikan perubahan pada sistem file. Ini harus mendahului opsi lain jika ingin
mendokumentasikan efeknya. Jika Anda memberikan opsi ini ke makepp itu sendiri, seolah-olah Anda memiliki
diberikan untuk setiap perintah bawaan.

bawaan perintah
Ada dua motivasi untuk memiliki perintah bawaan di makepp. Yang pertama adalah menawarkan
seperangkat utilitas, yang, tidak seperti perintah Shell, dijamin berfungsi sama
di mana-mana, seperti "&echo -n" atau "&mkdir -p", dan membuat Anda tidak perlu repot mencari jalur
untuk &menginstal dan mencari tahu opsi yang sangat bervariasi. Dalam lingkungan kompilasi,
itu berguna untuk memiliki opsi "--synclines", yang biasanya hanya disediakan "m4", di semua
filter.

Yang lainnya adalah masalah efisiensi. Secara umum garpu/exec yang mahal harus dihindari
jika memungkinkan secara wajar. Pada emulasi Unix seperti Cygwin atau BS2000/Posix, ini menjadi
kemenangan yang mencolok. Tetapi, bahkan di Linux, ketika test suite makepp dikonversi dari
perintah eksternal ke built-in, ada penghematan keseluruhan penggunaan CPU pengguna 3% dan 15%
penggunaan CPU sistem. (Tes tentu saja berat pada tindakan primitif dan hampir tidak menyebut
penyusun.)

Konsistensi juga merupakan masalah, meskipun kami tidak akan mereformasi Unix. Biasanya perintah
memiliki berbagai nuansa ekspresi reguler. Dan banyak yang menciptakan semacam bahasa, masing-masing
berbeda tentu saja, untuk melakukan sesuatu (misalnya "expr", "sed" ...), atau opsi kompleks untuk
menentukan bidang, pembatas, kolom (misalnya "potong", "urutkan" ...).

Di sini, sebagai gantinya, apa pun yang mewah ditangani oleh Perl, memberikan konsistensi di seluruh
semua perintah, dan kekuatan yang jauh lebih besar daripada sejumlah besar opsi. Lebih baik lagi, apa saja Kode Perl
perintah ini dijalankan untuk Anda, dijalankan dalam paket Makefile. Jadi, daripada
memasukkan kode Perl ke dalam tindakan aturan, Anda dapat menentukan fungsi dan variabel dan menggunakannya
dalam perintah:

sub filter_saya {
# Kembalikan true jika $_ diinginkan
}
%.out: %.di Makeppfile
&grep &my_filter $(masukan) -o $(keluaran)

Jika Anda menggunakan fungsi atau variabel Perl dalam perintah Anda, makepp tidak mengenali ini sebagai
sebuah ketergantungan. Biasanya lebih aman untuk memberi tahu makepp segalanya, jadi aturan yang menggunakan Perl
elemen harus bergantung pada makefile atau modul yang menyediakan elemen tersebut, seperti yang ditunjukkan pada
di atas contoh.

Di sisi lain, ketidaktahuan mungkin diinginkan jika Anda memiliki program yang menggabungkan programmatic
dan aspek konfigurasi dalam satu file. Contohnya adalah file WSDL yang berisi a
definisi antarmuka layanan web dan alamat IP. Anda dapat melakukan praproses file ini dengan
perintah &template untuk menambal dalam konfigurasi, tetapi jangan biarkan makepp memperhatikan.

&kucing [pilihan ...] nama file ...
Menggabungkan semua file menjadi satu.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=nama file, -O, --outfail, -S,
--synclines, -v, --verbose"

&chmod [pilihan ...] mode nama file ...
set mode untuk semua file yang diberikan. Mode harus berupa string oktal.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -v, --verbose"

&cp [pilihan ...] sumber data file dest
&cp [pilihan ...] sumber data
&cp [pilihan ...] sumber data ... tujuan
Copy sumber data untuk file dest, satu sumber data ke direktori saat ini atau beberapa
sumber datas untuk tujuan dengan nama yang sama.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

-l
--tautan
Cobalah untuk menautkan file. Jika gagal, coba tautan simbolik, jika itu juga
diminta, salinan lain.

-s
--simbolis
--tautan simbolik
--symlink
Cobalah untuk menghubungkan file secara simbolis. Jika gagal, salin.

Lihat catatan di bawah &ln.

&memotong [pilihan ...] nama file ...
Cetak bagian garis yang dipilih dari setiap file atau garis yang dipilih, menghitung di semua
file. Output dipisahkan oleh pembatas yang default ke TAB untuk bidang dan
string kosong untuk karakter.

"Opsi standar": "-A, --args-file, --arguments-file=filename, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=nama file, -O, --outfail, -r,
--record-size=number, --separator=string, -S, --synclines, -v, --verbose"

-c daftar
--karakter=daftar
Cetak semua karakter yang ditentukan oleh daftar. Daftar mungkin ekspresi Perl apa saja
mengembalikan daftar bilangan bulat. Bilangan bulat dapat berupa positif, mulai dari
nol untuk menghitung dari awal, atau negatif untuk menghitung dari akhir. Tidak seperti Unix
"potong", urutan yang Anda minta dihormati.

Tidak seperti di operator irisan Perl di mana rentang ".." harus positif atau
negatif, & cut memungkinkan dimulai dengan positif dan diakhiri dengan negatif. Tetapi
ini hanya tersedia jika ekspresi Anda hanya terdiri dari angka, koma, dan
"..". Misalnya "1..-2" berarti segalanya kecuali yang pertama (0) dan yang terakhir (-1).

Ekspresi daftar dapat melihat seluruh baris dalam $_. Perubahan itu akan menjadi
diabaikan, bagaimanapun, karena ketika ekspresi ini dievaluasi, baris sudah
telah dipecah ke variabel autosplit Perl @::F. Angka yang Anda kembalikan sebenarnya
indeks ke daftar itu.

-d string
--pembatas=string
Tetapkan pembatas baru untuk bidang input dan output. Tidak seperti Unix "cut", ini mungkin memiliki
panjang apapun.

-E
--tidak ada jalan keluar
Perlakukan "\" sebagai literal normal untuk "-p, --printf=format".

-f daftar
--bidang=daftar
Cetak semua grup yang ditentukan oleh daftar. Daftar adalah seperti yang dijelaskan di bawah "-c,
--characters=list". Perhatikan bahwa ini menyembunyikan opsi standar "-f" yang harus
diberikan sebagai "--force".

-l daftar
--baris=daftar
Cetak semua baris yang ditentukan oleh daftar. Daftar adalah seperti yang dijelaskan di bawah "-c,
--characters=list" dengan satu perbedaan utama: Baris pertama memiliki nomor 1, di sana
tidak ada baris 0. Ini jelas tidak efisien untuk file besar, jika Anda memiliki campuran
rentang positif ke negatif dalam daftar Anda, karena ia membaca semuanya ke memori.
Kalau tidak, Perl dapat mengoptimalkan ini, tetapi saya tidak tahu apakah itu benar.

-m
--cocok
Cetak hanya garis yang cocok, yaitu yang memiliki karakter atau bidang yang cukup. Ini
menyiratkan "--only-delimited", itulah sebabnya Anda akan kehilangan baris bidang tunggal dengan
"--bidang=0".

-p format
--printf=format
Terapkan format (dengan \escapes) ke semua bidang atau karakter.

-s
--hanya-dibatasi
Cetak hanya garis yang mengandung pembatas.

&cut -c 10-20,-5,25- $(masukan)
&cut -c 'grep $$_ % 3, 0..99' $(input) #1 100 kolom bukan kelipatan 3
&cut -d: --bidang 0,4 --printf='%10s adalah %s\n' / etc / passwd

&gema [pilihan ...] string ...
&printf [pilihan ...] format argumen ...
&Ya [pilihan ...] string ...
Menulis semua string ke stdout atau outfile yang diberikan. Baik &echo dan &yes menambahkan baris baru
pada akhirnya. String, atau untuk &printf format, mungkin berisi "\" lolos, karena mereka
dikenal dari C atau Unix modern atau Shell "echo". Namun mereka seperti di Perl double-
tanda kutip, yang berarti beberapa perbedaan, seperti satu "\" yang tertinggal tidak diperbolehkan.
Perl memiliki beberapa pelarian yang lebih menarik, tetapi yang mungkin Anda harapkan untuk melakukan sesuatu
berbeda adalah:

\cA Adalah karakter kontrol ^A.

\u Mengangkat huruf berikut.

\U Meningkatkan sisanya, atau hingga "\E" atau "\L" berikutnya jika ditemukan.

\xHH, \X{Hhhhh}
Adalah nilai karakter dari kode Hex yang diberikan. Perhatikan bahwa kode numerik tidak
portabel untuk platform EBCDIC!

Tidak seperti Unix "yes", &yes persis seperti &echo, kecuali bahwa ia mengulang output untuk
selama itu bisa, biasanya sampai "--output '| memerintah'" berakhir. Dan, jika &ya
tidak memiliki argumen, defaultnya adalah "y".

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -o,
--output=nama file, -O, --outfail, -v, --verbose"

-E
--tidak ada jalan keluar
Perlakukan "\" sebagai literal normal.

-n
--tidak ada baris baru
Jangan tambahkan baris baru setelah string terakhir. (Tidak dipahami oleh &printf.)

&ekspr [pilihan ...] kode perl ...
Cetak nilai skalar perlcode, yang dapat ditulis sebagai satu atau beberapa argumen.
Perhatikan bahwa perintah bawaan tidak diuraikan oleh Shell, jadi "*", "(" atau ">" tidak
spesial. Tapi tanda kutip string diuraikan oleh makepp, jadi string Perl harus dikutip
dua kali, kecuali jika Anda ingin menggunakan barewords. Jika nilainya salah, ini gagal. Catatan
bahwa -- tidak seperti di Unix "expr" -- fungsi indeks Perl dimulai dari 0 (salah) dan kembali
-1 (benar) untuk kegagalan.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -o,
--output=nama file, -O, --outfail, -v, --verbose"

-n
--tidak ada baris baru
Jangan tambahkan baris baru setelah output.

&expr ($(VAR) - 3) * 2 < 1 && -1 || 1
&expr "$(VAR) - 3 * 2 < 1 ? 'kegembiraan' : 'kesedihan'" -o $(output)
-&expr $(VAR) - 3 * 2 -o >>$(output)

&grep [pilihan ...] kode perl nama file ...
&perl [pilihan ...] kode perl nama file ...
&sed [pilihan ...] kode perl nama file ...
Semua file dibaca baris demi baris (kecuali jika Anda memberikan opsi "--separator"), dan
kode perl dievaluasi untuk setiap baris, sebelum dicetak. &sed mirip dengan
"perl -pe", sementara &grep hanya menampilkan baris-baris yang kode perl mengembalikan yang benar
nilai. &perl mirip dengan "perl -ne", hanya mengeluarkan apa pun yang Anda cetak secara eksplisit
dalam kode perl. Konten baris tersedia dalam $_, yang dapat dimodifikasi.

Dari ketiganya, hanya &grep yang akan gagal jika tidak menghasilkan apa-apa. Perhatikan bahwa tidak ada
opsi abaikan-kasus, karena Anda akan melakukannya dengan "/regexp/i".

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=nama file, -O, --outfail, -r,
--record-size=number, -s, --separator=string, -S, --synclines, --verbose"

Opsi "--synclines" hanya masuk akal dengan &perl jika Anda menggunakan &Mpp::Cmds::print to
keluaran $_. Hanya &grep yang memiliki opsi tambahan:

-c
--menghitung
Menekan keluaran normal; alih-alih mencetak hitungan garis yang cocok. Dengan "-v,
--invert-match" (lihat di bawah), hitung baris yang tidak cocok.

-l
--Daftar
--file-dengan-kecocokan
Keluarkan hanya nama file-file itu dengan kecocokan. Ketika ini digabungkan dengan "-v,
--invert-match", menampilkan nama file dengan baris yang tidak cocok (sedikit
tidak masuk akal tetapi kompatibel dengan Unix -vl). Ketika ini digabungkan dengan dua kali lipat
"-vv", menampilkan nama file tanpa kecocokan.

-v
--dan sebaliknya
--kembalikan-pertandingan
--balik-pertandingan
Balikkan arti pencocokan, untuk memilih garis yang tidak cocok. Perhatikan bahwa ini menyembunyikan
opsi standar "-v" yang harus diberikan sebagai "--verbose".

-w nama file
--file-limbah=nama file
Keranjang sampah opsional untuk mengumpulkan garis yang ditolak. Ini bukan hanya untuk
men-debug kode pilihan Anda, tetapi juga untuk membagi input Anda menjadi dua. Seperti
output normal, Anda dapat memodifikasi $_ sebelum mengembalikan false.

&sed s/foo/bar/ f1 f2 f3 -o outfile # like sed s/foo/bar/ f1 f2 f3 >outfile
&sed '$$_ = uc' f1 f2 f3 -o outfile # like tr '[:lower:]' '[:upper:]' f1 f2 f3
&ambil '$$. % 3' f1 f2 f3 -o outfile # hilangkan setiap baris ke-3
&grep -c /match/i f1 f2 f3 # hitung baris yang cocok dengan 'cocok' dengan STDOUT

Tanpa mendorong Anda untuk membuat pengakses massal, inilah cara Anda dapat melakukannya hanya dengan
menempatkan komentar RO atau RW di antara setiap jenis dan nama variabel yang diinginkan, semuanya menjadi satu
garis. Pengambil yang dihasilkan dan metode penyetel opsional masuk ke yang ditemukan berikutnya
bagian publik atau dilindungi:

# Buat metode get dan mungkin set dari "type /* R[OW] */ member;".
sub cxx_accessor {
$ac ||= ''; # Kandidat untuk negara bagian 5.10.0
jika( m!^\s*(.+?)\s*/\*\s*R([OW])\s*\*/\s*(.+?)\s*;! ) {
$acc .= "#baris $.\n"; # Beri tahu C++ dari mana asalnya
$acc .= "set kosong\u$3( const $1 &__tmp ) { $3 = __tmp; }"
jika $2 eq 'W';
$acc .= "const $1 &get\u$3() const { return $3; }\n";
} elsif( /^\s*(?:publik|dilindungi)\s*:/ ) {
$_ .= $ac;
$ac = '';
}
}

%.cc: %.cc.in # Gunakan &sed untuk penanganan I/O
&sed --sync-lines &cxx_accessors $(input) -o $(output)

&Install [pilihan ...] sumber data file dest
&Install [pilihan ...] sumber data ... tujuan
&instal --direktori [pilihan ...] direktori ...
Pindahkan atau ganti nama sumber data untuk file dest, atau beberapa sumber datas untuk tujuan pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka.
nama yang sama. Ini adalah cara yang lebih disukai untuk mentransfer hasil build ke final mereka
lokasi instalasi.

Setiap modifikasi sistem file yang dilakukan oleh &instal akan dicatat hingga akhir
file yang ditunjuk oleh variabel lingkungan $INSTALL_LOG, atau, jika itu tidak disetel tetapi
kita berada di bawah direktori dengan a File RootMakepp(.mk), ke file .install_log karena
direktori, atau ke file itu di direktori saat ini. Anda mungkin ingin menghapus
logfile sebelum serangkaian pemanggilan &instal.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -v, --verbose"

-c
--salinan
Salin file daripada memindahkannya. Ini lebih disukai, karena tidak memaksa
makepp untuk membangun kembali file lain kali. Tapi itu bukan default, karena
kompatibilitas dengan program penginstalan lainnya.

-d
--direktori
Dalam bentuk bentuk ketiga dari perintah ini buat semua direktori yang diberikan dan sembarang
direktori induk yang diperlukan.

-g kelompok
--grup=kelompok
Ubah kepemilikan grup file tujuan. Kelompok dapat diberikan oleh
nama atau angka.

-l
--tautan
Cobalah untuk menautkan file. Jika gagal, salin.

--log=nama file
--file log=nama file
penggunaan nama file bukannya file log biasa.

-m mode
--modus=mode
set mode untuk semua file atau direktori tujuan. Mode harus berupa string oktal.

-o pemilik
--pemilik=pemilik
Ubah kepemilikan file tujuan. Pemilik dapat diberikan dengan nama atau
secara numerik.

-r
--menyelesaikan
--resolve-simbolik
--resolve-simbolis-tautan
--resolve-symlink
-S
--simbolis
--tautan simbolik
--symlink
Membuat tautan simbolik alih-alih bergerak. Opsi ini diteruskan ke &ln dan adalah
dijelaskan di sana.

-s
--mengupas
Memanggil utilitas "strip", yang harus ada di $PATH, pada file tujuan.

&ln [pilihan ...] sumber data file dest
&ln [pilihan ...] sumber data
&ln [pilihan ...] sumber data ... tujuan
Link sumber data untuk file dest, satu sumber data ke direktori saat ini atau beberapa
sumber datas untuk tujuan dengan nama yang sama.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

-r
--menyelesaikan
--resolve-simbolik
--resolve-simbolis-tautan
--resolve-symlink
Inilah yang Anda selalu ingin "ln -s" lakukan. Buat simbolis daripada sulit
tautan, bukan ke string yang ditentukan, tetapi benar-benar ke file yang diberikan.

-s
--simbolis
--tautan simbolik
--symlink
Buat tautan simbolik daripada tautan keras.

Catatan: Pada berbagai file atau sistem operasi, operasi ini tidak didukung. Atau itu
adalah, misalnya oleh Cygwin, tetapi tidak dipahami oleh kompiler Windows asli, jika Anda menggunakannya.
Untuk makefile yang tidak dapat Anda ubah, untuk mendapatkan setidaknya semacam hasil, &ln dan "&cp -l
-s" dapat menyalin file untuk Anda (bukan direktori). Untuk mencapai ini, Anda
perlu mengekspor variabel berikut sebelum memanggil makepp:

ekspor MAKEPP_LN_CP=1
&ln --resolve atau --symbolic akan menyalin file alih-alih membuat simbol
link.

ekspor MAKEPP_LN_CP=2
&ln akan menyalin file alih-alih membuat tautan keras.

ekspor MAKEPP_LN_CP=3
Semua permintaan &ln akan menyalin file alih-alih membuat kedua jenis
link.

&mkdir [pilihan ...] direktori ...
Buat direktori.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

-m mode
--modus=mode
set mode untuk semua direktori yang dibuat, terlepas dari umask. Modus harus berupa
string oktal.

-p
--induk
Juga buat direktori induk yang diperlukan. Abaikan kegagalan pembuatan direktori
karena direktori sudah ada (meskipun dibuat secara bersamaan oleh
proses lain).

&mv [pilihan ...] sumber data file dest
&mv [pilihan ...] sumber data
&mv [pilihan ...] sumber data ... tujuan
Pindahkan atau ganti nama sumber data untuk file dest, satu sumber data ke direktori saat ini atau beberapa
sumber datas untuk tujuan dengan nama yang sama.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

&praproses [pilihan ...] variabel = definisi ... nama file ...
Ini memroses file dengan cara yang sama persis seperti yang dilakukan makepp untuk makefile. Ini adalah
lebih kuat dari &templat tetapi secara sintaksis tidak cocok untuk file dengan banyak
"$" -tanda, seperti Makefile atau skrip.

Pernyataan bersyarat, serta pernyataan "termasuk"/"_termasuk" (yang di sini
tidak membangun file atau mencari ke atas), "perl"/"makeperl"/"perl_begin" atau
"sub"/"makesub", atau pernyataan apa pun yang Anda definisikan di dalam file, akan diproses. Kosong
dan baris komentar dihilangkan.

Tapi, alih-alih mempelajari aturan pembuatan, itu akan menampilkan semua baris yang tersisa setelahnya
Ekspansi ekspresi "$(...)". Untuk mencegah agar pernyataan tidak diakui seperti itu,
Anda dapat mendahuluinya dengan ekspresi kosong "$()". Hal yang sama berlaku untuk baris Anda
ingin tetap kosong atau yang harus mempertahankan tanda komentar terkemuka. Demikian juga, jika
trailing backslash bukan untuk bergabung dengan baris berikutnya, letakkan "$()" setelahnya.

Garis normal mendapatkan output apa adanya.
Baris dengan $(MAKEEXPRESSIONS) diperluas dan dikeluarkan.
ifdef WANTTHIS # tidak mendapatkan output apakah ditentukan atau tidak
mungkin tidak mendapatkan keluaran
endif
sertakan beberapa file
_sertakan beberapa file yang mungkin tidak ada # atau -sertakan
$()include ekspresi kosong mencegah kata kunci dikenali.
# Baris komentar dan baris kosong tertelan.

$()# Kecuali jika mereka ditutupi dengan ekspresi kosong.
$()
Ekspresi kosong mencegah \$()
kelanjutan garis miring terbalik agar tidak dikenali.

mungkin memberikan:

Garis normal mendapatkan output apa adanya.
Garis dengan apa pun yang diperluas dan dikeluarkan.
banyak konten yang terselip di sini...
sertakan ekspresi kosong mencegah kata kunci dikenali.
# Kecuali jika mereka ditutupi dengan ekspresi kosong.

Ekspresi kosong mencegah \
kelanjutan garis miring terbalik agar tidak dikenali.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -o,
--output=nama file, -O, --outfail, -S, --synclines, -v, --verbose"

-a
--penugasan
Juga perlakukan tugas dalam file seperti yang dilakukan makepp. Sayangnya garis seperti itu tidak mungkin
ditutupi dengan "$()" kosong, karena legal untuk membuat nama variabel dengan
ekspresi. Ini juga mengakui pernyataan "menentukan",
"export"/"unexport" dan "override" (ini dapat ditutup dengan "$()").

-H \\%hash
--hashref=\\%hash
Ini memungkinkan pra-alokasi nilai variabel, termasuk yang panjang tidak mudah
dilewatkan dalam sebuah perintah. Ekspresi yang diteruskan dapat berupa kode Perl apa pun yang mengembalikan a
referensi hash. Ini digabungkan dengan variabel lain yang diteruskan ke perintah,
termasuk dari opsi "--hashref" lainnya.

&rm [pilihan ...] nama file ...
Hapus file jika Anda memiliki izin menulis direktori. Inilah yang akan dilakukan Unix "rm -f"
hapus, karena memiliki perlindungan khusus untuk penggunaan interaktif yang tidak diperlukan dalam a
file make.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -v, --verbose"

-f
--memaksa
Ini mencegah keluhan tentang file yang tidak ada. Itu adalah efek sampingnya
pilihan ada di Unix, dan satu-satunya yang masuk akal di sini.

-m
--metainfo
Selain file yang diberikan, ini juga menghapus informasi meta makepp
menyimpan tentang mereka di direktori .makepp. Jadi makepp melupakan semua yang pernah diketahuinya
tentang file yang diberikan. Jika direktori .makepp menjadi kosong setelah ini, itu juga
dihapus.

Ini juga akan menghapus direktori yang diberikan, tetapi hanya jika direktori tersebut kosong. Untuk memfasilitasi
ini, itu akan menghapus direktori terakhir, dalam urutan kedalaman yang menurun. Jadi kamu bisa
gunakan ekspresi "**" untuk menghapus seluruh hierarki. Berikut adalah contoh yang dapat ditemukan di
banyak tingkat atas membuat file. Perhatikan bahwa ada utilitas "makeppclean" yang dapat melakukannya
ini lebih efisien.

$(pembersih palsu):
&rm -fm $(hanya-basi **/*)

$(bersih palsu): cleanold
&rm -f $(wildcard **/*.[ao])

$(pembersihan palsu): bersih
&rm -fm $(hanya-target **/*)

&menyortir [pilihan ...] nama file ...
Mengurutkan semua file dalam urutan leksikografis. Ini tidak efisien untuk yang agak besar
file, karena itu terjadi sepenuhnya di memori. Itu akan gagal jika ukuran gabungan dari
semua file melebihi memori yang menjadi hak Anda.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=nama file, -O, --outfail,
--record-size=number, -s, --separator=string, -v, --verbose"

-c kode perl
--bandingkan=kode perl
kode perl mewakili blok sortir Perl, dengan dua kandidat sortir dalam $a dan
$b.

-n
--numerik
--urutan numerik
Ini mengurutkan secara numerik di awal catatan. Spasi utama adalah
dilewati. Anda dapat menggunakan "--transform" dan "--detransform" jika angkanya tidak
awal mula.

-r
--membalikkan
Keluarkan hasil dalam urutan terbalik. Perhatikan bahwa ini menyembunyikan opsi standar
"-r" yang harus diberikan sebagai "--record-size".

-t kode perl
--transformasi=kode perl
-d kode perl
--detransformasi=kode perl
Jika Anda memiliki kode yang rumit, penyortiran menjadi semakin mahal sebanding dengan
jumlah catatan n, karena kodenya dipanggil O(n catatan(n)) waktu. Menghindari
itu, Anda dapat mengizinkan Perl untuk berkonsentrasi pada penyortiran, dengan terlebih dahulu memodifikasi
string, sehingga ekstraksi kriteria pencarian yang rumit terjadi sekali per record,
dan memodifikasinya kembali, setelah diurutkan.

Jika opsi ini diberikan, "--transform" kode perl akan dipetakan ke catatan
di $_ satu demi satu, dan dapat memodifikasinya. Setelah menyortir, "--detransform"
kode perl dipetakan ke catatan yang dimodifikasi dalam $_ satu demi satu, dan dapat
memodifikasi mereka kembali. Anda biasanya tidak akan menggunakan salah satu atau kedua opsi ini, kecuali
Anda ingin menampilkan baris yang dimodifikasi.

Mengubah string menjadi struktur kriteria pengurutan yang diekstraksi, yang Anda
"--membandingkan" kode perl dapat mengambil dikenal sebagai Transformasi Schwartzian (ST).
Kemas semuanya ke dalam string itu sendiri, sehingga tidak ada "--compare" kode perl is
diperlukan, memungkinkan seluruh penyortiran terjadi tanpa melakukan Perl . yang mahal
kode, yang dikenal sebagai Transformasi Guttmann-Rosler (GRT). Anda dapat menemukan tips dengan
mencari nama-nama itu di web.

# Mengurutkan ekspresi numerik berdasarkan nilai secara mahal ($$ melindungi $ dari ekspansi makepp)
&sort --bandingkan 'eval( $$a ) <=> eval( $$b )' $(input) -o >>$(output)

# ST untuk penyortiran yang tidak peka huruf besar-kecil
&sort -t '[lc, $$_]' -c '$$a->[0] cmp $$b->[0]' -d '$$_->[1]' $(input) - o >>$(keluaran)

# GRT menggunakan fungsi modifikasi yang didefinisikan di tempat lain di Makeppfile
&sort -t &transform -d &detransform $(input) -o >>$(output)

-u
--unik
--unik
Setelah menyortir, hilangkan duplikat. Ini adalah garis yang identik, atau jika
Opsi "--bandingkan" diberikan, yang mana kode perl laporan sebagai setara.

&templat [pilihan ...] makro = definisi ... nama file ...
Ini adalah praprosesor makro, tidak sekuat praprosesor C atau "m4".
Lihat &praproses untuk alternatif yang lebih kuat. Itu terinspirasi oleh makro automake
pengganti di Makefile.am dan Makefile.di. Tapi lebih dari itu. Teks normal apa pun
melewati tidak berubah. Konstruksi khusus secara default dibatasi dengan "@". Mereka
harus muat pada satu baris kecuali Anda melewati salah satu dari "-r, --record-size" atau "--separator".

@# komentar @
Perhatikan bahwa meskipun meminjam dari sintaks komentar akhir baris skrip "#", yang ini adalah
komentar sebaris.

@MAKRO@
Konstruk ini diganti dengan nilai MAKRO. Nama makro harus dimulai dengan
huruf atau garis bawah, diikuti oleh sejumlah huruf, garis bawah, minus atau
titik. Tidak seperti dalam nama makepp, garis bawah dan minus tidak setara.

@MAKRO(arg1, arg2...)@
Seperti yang pertama, tetapi parametrized. Argumen menggantikan $1 hingga $9 atau
"${nomor}" dalam nilai. Atau, jika nilainya adalah fungsi Perl, mereka dilewatkan sebagai
parameter biasa. Hasilnya kemudian menggantikan seluruh konstruksi. satu tingkat
sarang makro dimungkinkan karena argumen dalam tanda kurung mungkin berisi plain
Doa "@MACRO@", seperti dalam "@f(@x@)@", di mana "@x@" diperluas sebelum menjadi
diganti menjadi tubuh "f".

@termasuk(nama file)@
Ini adalah satu-satunya makro yang telah ditentukan sebelumnya. Ini digantikan oleh &template-diproses
isi dari file bernama. Seperti semua makro, ini dapat terjadi di tengah-tengah a
garis. Sayangnya, karena itu, "-S, --synclines" mengabaikan penyertaan file, membuat
semuanya tampaknya berasal dari file yang disertakan.

@MAKRO=definisi@
@MAKRO?=definisi@
Ini mendefinisikan makro dalam file. Ini digantikan oleh apa-apa. Kedua
formulir hanya berlaku jika makro tidak ditentukan, mungkin pada perintah
line.

@MAKRO { Kode Perl }@
Ini juga mendefinisikan makro, yang isinya adalah sub Perl. Argumen, jika
ada, masuk sebagai @_.

@{ Kode Perl }@
Ini menjalankan Kode Perl segera dan akan digantikan oleh nilai kembali.

Sejauh ini kita hanya melihat satu sintaks untuk menyematkan hal-hal khusus. Ada yang lain
sintaks multiline, dan keduanya memungkinkan variasi untuk menekan baris baru. Ini adalah
sintaks bawaan (yang dapat dikonfigurasi dengan opsi di bawah). Di Sini KHUSUS singkatan
salah satu konstruksi yang ditunjukkan di atas:

@KHUSUS@
@KHUSUS@\
Ini bisa muncul di mana saja dalam satu baris. Varian segera diikuti oleh
"\" hanya berfungsi di akhir baris. Itu juga menggantikan jeda baris berikut.

@@KHUSUS@@ Normal teks @@
@@KHUSUS@@ Normal teks @@\
Ini seperti yang sebelumnya. Namun teks normal, yang juga diganti,
dapat menjangkau beberapa baris. Anda dapat menempatkan bagian khusus pada baris komentar di sekitar
kode sumber yang hanya diperlukan dalam skrip yang dihapus, untuk dihilangkan atau
diganti selama proses instalasi:

# @@# 2 baris berikutnya akan hilang @@
echo Anda menjalankan versi skrip ini yang telah dihapus instalasinya
# @@
# @@ PENGGANTI@@
echo Sesuatu yang lain akan ada di sini
# @@

Contoh tidak berarti yang menunjukkan berbagai kemungkinan:

@m1=beberapa definisi@\
@m2=foo $1 batang@\
@middle_of_arg=iddl@\
@m1@ @m2(m@middle_of_arg@e)@
@@m2(banyak baris)@@
...
@@ teks biasa 1 + 2 = @{ 1 + 2 }@

menjadi

beberapa definisi foo bar tengah
foo banyak baris bar teks biasa 1 + 2 = 3

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=nama file, -O, --outfail, -r,
--record-size=number, --separator=string, -S, --synclines, -v, --verbose"

-d
--didefinisikan
Ganti hanya contoh makro yang benar-benar ditentukan. Tanpa opsi ini
yang tidak terdefinisi semua akan digantikan oleh apa-apa.

-H \\%hash
--hashref=\\%hash
Ini memungkinkan pra-alokasi nilai makro, termasuk yang panjang tidak mudah
dilewatkan dalam sebuah perintah. Ekspresi yang diteruskan dapat berupa kode Perl apa pun yang mengembalikan a
referensi hash. Ini digabungkan dengan makro lain yang diteruskan ke perintah,
termasuk dari opsi "--hashref" lainnya. Nilai hash juga bisa berupa kode
referensi, dalam hal ini fungsi dipanggil, seperti dengan "@macro { Kode Perl }@"
definisi.

-s /awalan akhiran/
--sederhana=/awalan akhiran/
penggunaan awalan dan akhiran sebelum dan sesudah KHUSUS masing-masing bukan "@". NS
karakter pertama adalah pemisah dan tidak perlu berupa garis miring. Nilai-nilai ini adalah Perl
regexp. Anda tidak boleh memperkenalkan pengelompokan seperti "(...)", tetapi "(?:...)" boleh saja.

-m /awalan/akhiran/setelahawalan/[akhiran/]
--multibaris=/awalan/akhiran/setelahawalan/[akhiran/]
penggunaan awalan, akhiran dan akhiran sebelum dan sesudah KHUSUS dan di akhir
blokir masing-masing alih-alih "@@". Jika akhiran juga diberikan, nama makro
harus diulang sebelumnya. Karakter pertama adalah pemisah dan tidak perlu
sebuah garis miring. Misalnya XML-ish, di mana Anda harus menambahkan "--defined" jika Anda ingin
pertahankan tag lain, tidak ditentukan oleh Anda:

--defined --simple=|<|/>| --multiline=|<|>| |

Atau, lebih baik, gunakan instruksi pemrosesan " ", dimaksudkan untuk tujuan tersebut:

--defined --simple='|<\?|\?>|'

Atau, jika Anda ingin menggabungkan ini dengan "&entity;" sintaks untuk makro sederhana
pengganti (mempertahankan entitas numerik "☺" yang bukan komentar):

--defined --simple='_(?:&(?!#)|<\?)_(?:;|\?>)_'

&menyentuh [pilihan ...] nama file ...
Perbarui modifikasi dan stempel waktu akses setiap file hingga sekarang. Jika file
tidak ada, itu akan dibuat.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -v, --verbose"

&copot pemasangan [pilihan ...] [nama file ...]
Copot pemasangan file yang sebelumnya dipasang oleh &instal. NS nama files adalah file log yang ditulis
oleh & pasang. Jika tidak ada yang diberikan, atau opsi "--inpipe", membaca file log default
dari & pasang.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -i,
--inpipe=shellcommand, -I, --infail, -v, --verbose"

&unik [pilihan ...] nama file ...
Buang semua kecuali satu dari garis yang sama berturut-turut.

"Opsi standar": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=nama file, -O, --outfail, -r,
--record-size=number, -s, --separator=string, -S, --synclines, -v, --verbose"

-c kode perl
--bandingkan=kode perl
Kredensial mikro Kode Perl mendapatkan baris sebelumnya dan saat ini di $a dan $b dan akan kembali
benar jika menganggap kedua garis itu sama.

&uniq --compare='lc( $$a ) eq lc $$b' $(masukan) -o $(keluaran)

Dapat ditiru perintah
Berbagai hal tidak ada di dalamnya, tetapi dapat dicapai dengan perintah lain:

awk Gunakan &sed.

chgrp
chown
Perintah-perintah ini sebagian besar tidak portabel! Mereka akan diam-diam tidak melakukan apa-apa atau gagal,
tergantung pada sistem. Umumnya hanya root yang dapat melakukan operasi ini, yaitu
mengapa mereka hanya tersedia melalui perintah &install.

cpp Gunakan &praproses atau &templat.

tanggal
Salah satu dari ini sebagian melakukan hal yang sama:

&expr waktu setempat
&expr gmtime

palsu
Gunakan &expr tanpa argumen atau 0.

kepala
ekor
Anda dapat mencapai hasil yang sama dengan &grep atau "&cut --lines":

&grep 1..10 file # sepuluh baris pertama
&grep 10..eof file # semua baris dari kesepuluh dan seterusnya
&cut --lines -10..-1 file # sepuluh baris terakhir

Perhatikan bahwa 1..10 di &grep adalah operator flip-flop nomor baris Perl, yang mengganggu
dimulai dari 1. Jangan mulai dari 0, atau flip-flop tidak akan pernah benar.

fmt Ini disebutkan di sini karena Perl menyediakan fungsionalitas terkait. Namun saya punya
masalah menggunakan deklarasi "format" di makefile. Apa yang bekerja adalah
fungsi "formline" yang mendasarinya. Misalnya untuk mengubah file csv yang terdiri dari nama dan
harga ke format tabel:

sub csv2txt {
formline "\@<<<<<<<<<<<<<<<<< ^###########.##\n", split ',';
$_ = $^A;
$^A = '';
}

%.txt: %.csv
&sed &csv2txt $(masukan) -o $(keluaran)

m4 Gunakan &praproses atau &templat.

adalah rm
Gunakan &rm.

tr Gunakan &sed.

Gunakan makepp_builtins online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad