พฤติกรรมที่แตกต่างกันของ cd ที่มีหลายอาร์กิวเมนต์ใน bash release


14

โพสต์ไว้ที่นี่สิ่งที่ทำให้ฉันงงงวย; การอัพเกรดแอปพลิเคชันเซิร์ฟเวอร์จาก Jessie เป็น Stretch ทำให้bashสคริปต์เสียหาย

เมื่อทำการตรวจสอบเราได้ จำกัด ให้เป็นการเปลี่ยนแปลงพฤติกรรมของcdคำสั่ง ฉันไม่ได้พูดถึงที่นี่หากสิ่งที่สคริปต์กำลังทำอยู่เป็นความคิดที่ดีหรือหากสามารถปรับปรุงได้

เจสซี

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*

cd ทำงานและซีดีไปยังไดเรกทอรีแรก; จริงๆแล้ว * -run เป็นลิงค์สัญลักษณ์ไปยังไดเรกทอรีเดียวกัน

ยืด

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*
bash: cd: too many arguments

bash คือ 4.3.30 (1) ใน Jessie และ 4.4.12 (1) ใน Stretch

ทำไมการเปลี่ยนแปลงพฤติกรรมระหว่างเจสซีกับยืด?


2
นอกจากนี้: askubuntu.com/q/905832/158442
muru

คำตอบ:


23

ดูRelase Notes ของ bash 4.4โดยเฉพาะ

QQ มีตัวเลือกใหม่ที่สามารถตั้งค่าได้ใน config-top.h ซึ่งทำให้หลายอาร์กิวเมนต์ของไดเรกทอรีcdเป็นข้อผิดพลาดร้ายแรง

BTW ฉันไม่รู้ ฉัน googled สำหรับ "bash cd number 4.4"


8
น่าสนใจ สิ่งที่ดีเป็นสิ่งที่หลีกเลี่ยงการทิ้งข้อโต้แย้งเพิ่มเติมอย่างเงียบ ๆ เมื่อมีข้อผิดพลาดที่หลบหนี
สเปกตรัม

@spectras ความคิดเห็นที่น่าสนใจในขณะที่ฉันสงสัยว่ามันอาจมีความหมายโดยนัยเกี่ยวกับความปลอดภัยไม่ใช่มองจากมุมนั้น
Rui F Ribeiro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.