Score:0

ย้ายไปยังโฟลเดอร์โดยไม่ใช้ "exec"

ธง in

ใน VM ของฉัน โครงการของฉันอยู่ที่ /var/www/vhosts/projectname/httpdocs/
เมื่อฉันบูตเครื่อง ฉันเริ่มที่ /home/vagrant/

ฉันสร้างสคริปต์ที่จะพาฉันไปยังโปรเจ็กต์ที่ต้องการทันที ปัญหาคือสคริปต์ใช้ exec และสร้างเซสชันใหม่ทุกครั้งที่ใช้งาน

นี่คือรหัสของฉัน:

#!/usr/bin/env zsh

ถ้า [ -z "$1" ]; แล้ว
   echo "ไม่ได้ระบุโครงการ"
   ทางออก 1
ไฟ

ซีดี /var/www/vhosts/"$1"/httpdocs/ || ทางออก

เสียงสะท้อน "---------------------"
echo "โครงการ: $1"
เสียงสะท้อน " https://$1.vm/"
เสียงสะท้อน " https://$1.vm/typo3"
เสียงสะท้อน "---------------------"

ผู้บริหาร zsh

มีวิธีอื่นในการกำหนดเส้นทางปัจจุบันของฉันโดยไม่ต้องสร้างเซสชันใหม่หรือไม่
ขอบคุณ

muru avatar
us flag
ทำไมคุณถึงต้องการสคริปต์ ทำไมไม่เขียนฟังก์ชั่นแล้วใส่ทุกอย่างยกเว้น `exec zsh` ลงไปล่ะ?
bac0n avatar
cn flag
.....และเปลี่ยนทางออกทั้งหมดเป็นขากลับ ...
Score:4
ธง cn

สคริปต์ทำงานใน subshell ซึ่งไดเร็กทอรีปัจจุบันมีการเปลี่ยนแปลง สภาพแวดล้อมนี้ถูกฆ่าเมื่อสคริปต์สิ้นสุดลง การเปิดเชลล์แบบโต้ตอบ (ผู้บริหารระดับสูง) จำเป็นสำหรับการโต้ตอบกับสภาพแวดล้อมที่แก้ไข ซึ่งเปิดเชลล์ย่อยอื่นนอกเหนือจากที่สคริปต์ของคุณกำลังทำงานอยู่

ใช้ก ฟังก์ชั่นเชลล์ อาจเหมาะสมกับสิ่งที่คุณอยากทำมากที่สุด

เปลี่ยนแปลง () {
   ซีดี "$1"
   echo "โครงการ: $1"
}

รวมฟังก์ชันดังกล่าวไว้ในของคุณ ~/.zshrc ไฟล์ (.bashrc สำหรับผู้ใช้ทุบตี) เมื่อคุณออกแล้วเปิดเทอร์มินัลใหม่ คำสั่ง เปลี่ยนแล้ว จะสามารถใช้ได้

อีกทางหนึ่งคุณควร แหล่งที่มาของสคริปต์ของคุณ แทนที่จะดำเนินการ นอกจากนี้ยังสามารถนำมาใช้ค่อนข้างหรูหราโดยการกำหนดนามแฝง:

alias changeir='แหล่งที่มา <ชื่อพาธของสคริปต์ของคุณ>'

ควรรวมคำจำกัดความของนามแฝงไว้ด้วย ~/.zshrc (หรือ ~/.bashrc) ที่จะคงอยู่ เช่นเดียวกับแนวทางก่อนหน้านี้ คำสั่ง เปลี่ยนแล้ว พร้อมใช้งานที่เติมข้อความอัตโนมัติด้วย แท็บ.

สำหรับกรณีการใช้งานทั่วไป ซึ่งคุณเพียงแค่ต้องการสลับไปยังบางไดเร็กทอรีที่อยู่ลึกเข้าไปในแผนผังอย่างง่ายดาย ให้ดูตัวเลือกเพิ่มเติมต่างๆ ที่นี่.

vanadium avatar
cn flag
@steeldriver ถูกต้องคุณผิดและฉันผิด ฟังก์ชันเชลล์อาจเหมาะสมที่สุดสำหรับงานนี้ ซึ่งตอนนี้ฉันได้รวมไว้ในคำตอบแล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา