Có thể bao gồm tập tin trong tập tin cấu hình của zsh? Làm sao?


22

Tôi muốn có một tập tin, vd. f chỉ với bí danh zsh (lý do thuần túy). Sau đó, tôi muốn bao gồm tệp f trong tệp .zshrc của mình để các bí danh được xác định trong f hiển thị trong .zshrc .

Có thể không?

Nếu có, tôi có thể tạo một tập lệnh, vd. my_alias( $my_alias ll 'ls -l') nối thêm bí danh vào tệp f . Tất nhiên tôi có thể làm

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

nhưng điều này làm cho .zshrc một mớ hỗn độn lớn.

Ngoài ra, nó trông như thế nào trong bash?

CẬP NHẬT

Nếu ai đó chia sẻ ý tưởng của tôi thì đây là giải pháp, cảm ơn 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
}

Câu trả lời:


20

.zshrc.bashrclà các tệp script, không phải tệp cấu hình, vì vậy bạn "nguồn" tệp bí danh. Trong Zsh ( .zshrc) và Bash ( .bashrc) giống nhau:

. my_alias

sẽ chạy my_aliasvà để lại các hiệu ứng của nó trong cùng một môi trường với các tệp RC, mang lại hiệu quả cho bạn các bí danh trong trình bao. Tất nhiên, bạn cũng không giới hạn bí danh. Tôi sử dụng một .shrcnguồn có nguồn gốc từ cả hai .bashrc.zshrccho xuất khẩu chung, chức năng và bí danh.

Để biết thêm về nguồn, hãy xem các cách khác nhau để thực thi tập lệnh shell .


31

Đây là cách tôi thực hiện trong .zshrc:

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

Cảm ơn vì câu trả lời tốt, Bạn và phunehehe đều đúng nhưng chỉ có thể chấp nhận một câu trả lời nên tôi quyết định đưa nó cho phunehehe vì anh ấy là người đầu tiên :)
xliiv

14

Để nguồn một tập tin nếu nó tồn tại trong một dòng:

[ -f .aliases ] && source .aliases

Làm thế nào là khác nhau để trả lời của pat ?
jasonwryan 18/03/2015

1
Điều tương tự nhưng một lót. Tôi đến từ google và một trong những lớp lót là thứ tôi đang tìm kiếm (tìm thấy nó trên một diễn đàn cùng một lúc) vì vậy tôi nghĩ tôi cũng có thể chia sẻ điều đó;) Tôi sẽ không thể đến với nó khi tôi 'câm trong bash
Matthieu Napoli

1

Sau khi cài đặt oh-my-Zsh những dòng cuối cùng của.zshrc là:

# 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"

Vì vậy, bạn có một số lựa chọn thay thế:

  • Thêm trực tiếp vào .zshrc
  • Tạo một thư mục và thêm vào đường dẫn của nó ở cuối .zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • Sử dụng ~/.oh-my-zsh/customthư mục và git clone git://github.com/yourusername/zsh_config.git .ở đó.
  • Với sourcetoán tử / dot:

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

    -r FILEkiểm tra nếu tồn tại cho phép đọc được cấp.

    Trong trường hợp này, bạn có thể kiểm tra $SHELLtùy chỉnh bash và zsh bao gồm cùng một tệp.

Tài liệu tham khảo


Cảm ơn vì ý tưởng hay về Dropboxing
Ariful Haque
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.