!!
apt-get
มีอะไรจะทำอย่างไรกับ เป็นคีย์เวิร์ดเชลล์ที่จะถูกขยายไปยังคำสั่งก่อนหน้า การขยายตัวนี้ทำโดยเชลล์ก่อนคำสั่งปัจจุบันจะถูกตีความ
จากman bash
:
!! อ้างถึงคำสั่งก่อนหน้า นี่คือคำพ้องสำหรับ `! -1 '
ตัวอย่างเช่นหากคุณรันคำสั่ง:
echo "foo"
ถ้าคุณเรียกใช้:
sudo apt-get install !!
มันจะถูกขยายเป็น:
sudo apt-get install echo foo
ในขณะที่คุณสามารถเห็นมันขยายออกเป็นสองแพคเกจคือecho
และอื่น ๆ foo
คือ ไม่มีแพคเกจแบบสแตนด์อโลนชื่อเป็นและfoo
echo
นอกเหนือจากตัวเชลล์ในตัวecho
แล้วยังมี/bin/echo
ไฟล์ปฏิบัติการที่เป็นส่วนหนึ่งของแพ็คเกจ GNU-coreutils ดังนั้นคุณจะได้รับข้อผิดพลาดที่บอกว่าไม่มีแพ็คเกจดังกล่าว
ในทางกลับกันบุคคลอื่นอาจทำสิ่งนี้:
$ cowsay
The program 'cowsay' is currently not installed. You can install it by typing:
sudo apt-get install cowsay
$ sudo apt-get install !!
sudo apt-get install cowsay
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
filters
The following NEW packages will be installed:
cowsay
0 upgraded, 1 newly installed, 0 to remove and 119 not upgraded.
Need to get 18.5 kB of archives.
อย่างที่คุณเห็นcowsay
กำลังติดตั้งอยู่
ฉันขอแนะนำให้คุณไม่ทำเช่นนี้ (เว้นแต่คุณจะแน่ใจ) การมีความชัดเจนไม่เป็นอันตราย