เป็นไปได้หรือไม่ที่จะรวมไฟล์ไว้ในไฟล์กำหนดค่าของ zsh? อย่างไร?


22

ฉันต้องการไฟล์เช่น f ที่มีนามแฝง zsh เท่านั้น (เหตุผลความบริสุทธิ์) แล้วฉันต้องการรวมแฟ้มในของฉัน.zshrcไฟล์เพื่อให้นามแฝงที่กำหนดไว้ในมองเห็นได้ใน.zshrc

มันเป็นไปได้?

ถ้าเป็นเช่นนั้นฉันสามารถสร้างสคริปต์เช่น my_alias( $my_alias ll 'ls -l') ซึ่งเพิ่มชื่อแทนให้ไฟล์f แน่นอนฉันสามารถทำได้

$echo {alias command} >> ~/.zshrc

แต่สิ่งนี้ทำให้. zshrcเป็นระเบียบหนึ่ง

นอกจากนี้มันเป็นอย่างไรในทุบตี?

UPDATE

หากใครบางคนแบ่งปันความคิดของฉันนี่คือวิธีการแก้ขอบคุณ phunehehe:

# source aliases
ALIASFILE=~/.aliasesrc
source $ALIASFILE
function add_alias() {
    if [[ -z $1 || -z $2 || $# -gt 2 ]]; then
        echo usage:
        echo "\t\$$0 ll 'ls -l'"
    else
        echo "alias $1='$2'" >> $ALIASFILE
        echo "alias ADDED to $ALIASFILE"
    fi
}

คำตอบ:


20

.zshrcและ.bashrcเป็นไฟล์สคริปต์ไม่ใช่ไฟล์กำหนดค่าดังนั้นคุณจึง "แหล่งที่มา" ไฟล์นามแฝง ใน Zsh ( .zshrc) และ Bash ( .bashrc) เหมือนกัน:

. my_alias

จะเรียกใช้my_aliasและปล่อยเอฟเฟ็กต์ไว้ในสภาพแวดล้อมเดียวกันกับไฟล์ RC ให้ชื่อแทนในเชลล์ได้อย่างมีประสิทธิภาพ แน่นอนว่าคุณไม่ จำกัด นามแฝงเช่นกัน ผมใช้.shrcที่มีที่มาโดยทั้งสอง.bashrcและ.zshrcเพื่อการส่งออกร่วมกันฟังก์ชั่นและชื่อแทน

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


31

นี่คือวิธีที่ฉันทำใน. zshrc ของฉัน:

if [ -f ~/.zsh/zshalias ]; then
    source ~/.zsh/zshalias
else
    print "404: ~/.zsh/zshalias not found."
fi

ขอบคุณสำหรับคำตอบที่ดีคุณและ phunehehe นั้นถูกต้อง แต่เป็นไปได้ที่จะอนุมัติเพียงหนึ่งคำตอบดังนั้นฉันจึงตัดสินใจที่จะมอบให้กับ phunehehe เพราะเขาเป็นคนแรก :)
xliiv

14

แหล่งที่มาของไฟล์ถ้ามันมีอยู่ในหนึ่งบรรทัด:

[ -f .aliases ] && source .aliases

สิ่งนี้แตกต่างจากคำตอบของ patไหม
jasonwryan

1
สิ่งเดียวกัน แต่ซับเดียว ฉันมาจาก google และหนึ่งซับคือสิ่งที่ฉันกำลังมองหา (พบในฟอรั่มในเวลาเดียวกัน) ดังนั้นฉันคิดว่าฉันอาจแบ่งปันเช่นนั้น;) ฉันจะไม่สามารถเกิดขึ้นกับฉัน เป็นใบ้ในทุบตี
Matthieu Napoli

1

หลังจากติดตั้งOh-My-zshเส้นสุดท้ายของ.zshrcคือ:

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.  
# For a full list of active aliases, run `alias`.
# 
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

ดังนั้นคุณมีทางเลือก:

  • เพิ่มไปยัง .zshrc
  • สร้างโฟลเดอร์และเพิ่มที่เส้นทางในตอนท้ายของ.zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • ใช้~/.oh-my-zsh/customโฟลเดอร์และที่git clone git://github.com/yourusername/zsh_config.git .นั่น
  • ด้วยsource/ ผู้ประกอบการจุด:

    # CUSTOMIZATION FOR ZSH
    if [ -r ~/Dropbox/.myzshrc ]; then
        source ~/Dropbox/.myzshrc
    fi

    -r FILEตรวจสอบว่ามีอยู่และได้รับอนุญาตให้อ่าน

    ในกรณีนี้คุณสามารถตรวจสอบ$SHELLbash และ zsh ที่กำหนดเองรวมถึงไฟล์เดียวกัน

การอ้างอิง


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