Apa artinya% 1 dalam “kill% 1”?

12

Saya tahu bahwa $!menyimpan pid dari proses (latar belakang) terakhir, tetapi apa %1artinya? Saya sering melihatnya bersama killdan memiliki efek yang sama dengan kill $!. Bisakah seseorang memberi saya petunjuk? (Istilah kecil seperti itu sangat sulit untuk google: - /)

Zardoz
sumber
Tidak juga ... google.com/search?q=percent+1+bash (lihat hasil ketiga)
Hello71

Jawaban:

10

The %designator mengacu pada pekerjaan di daftar pekerjaan shell saat ini, dan mengembalikan PID. Coba help jobs.

Ignacio Vazquez-Abrams
sumber
1
Apa yang membingungkan saya adalah yang man killmemberikan halaman manual untuk eksekusi kill eksternal yang tidak mengatakan apa-apa tentang %. Tetapi bash juga memiliki built-in di killmana sebagai built-in lebih diutamakan daripada eksternal kill, dan help killmemberitahu kita bahwa kita dapat menggunakan jobspec dengan built-in kill, dan bahwa dapat menggunakan jobspec adalah salah satu alasan mengapa itu adalah built-in.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
8

Yang Anda inginkan dari Google adalah man bash

Ada sejumlah cara untuk merujuk ke suatu pekerjaan di shell. Karakter% memperkenalkan nama pekerjaan. Nomor pekerjaan n dapat disebut sebagai% n. Pekerjaan juga dapat disebut menggunakan awalan nama yang digunakan untuk memulainya, atau menggunakan substring yang muncul di baris perintahnya. Sebagai contoh,% ce mengacu pada pekerjaan yang berhenti. Jika awalan cocok dengan lebih dari satu pekerjaan, bash melaporkan kesalahan. Menggunakan%? Ce, di sisi lain, mengacu pada pekerjaan apa pun yang mengandung string ce di baris perintahnya. Jika substring cocok dengan lebih dari satu pekerjaan, bash melaporkan kesalahan. Simbol %% dan% + merujuk pada gagasan shell tentang pekerjaan saat ini, yang merupakan pekerjaan terakhir yang dihentikan saat berada di latar depan atau dimulai di latar belakang. Pekerjaan sebelumnya dapat dirujuk menggunakan% -. Ketika ada pekerjaan saat ini saja,% - mengacu pada gagasan shell tentang pekerjaan saat ini. Dalam output yang berkaitan dengan pekerjaan (misalnya, output dari perintah pekerjaan), pekerjaan saat ini selalu ditandai dengan tanda +, dan pekerjaan sebelumnya dengan a -. % Tunggal (tanpa spesifikasi pekerjaan yang menyertainya) juga mengacu pada pekerjaan saat ini.

Cukup memberi nama pekerjaan dapat digunakan untuk membawanya ke latar depan:% 1 adalah sinonim untuk '' fg% 1 '', membawa pekerjaan 1 dari latar belakang ke latar depan. Demikian pula, ''% 1 & '' melanjutkan pekerjaan 1 di latar belakang, setara dengan '' bg% 1 ''.

TL; DR: %1 adalah pekerjaan nomor 1.

Orbling
sumber
5
Saya pikir kualitas adalah pekerjaan nomor 1 ...
Ignacio Vazquez-Abrams
1
@Ignacio Vazquez-Abrams: Ya, itu dan tuntutan alam.