Tôi muốn chạy một bí danh trong một bash -ccấu trúc.
Các bashtay nói:
Bí danh không được mở rộng khi shell không tương tác, trừ khi
expand_aliasestùy chọn shell được đặt bằng cách sử dụngshopt
Trong ví dụ này, tại sao bí danh hikhông được tìm thấy khi cài đặt expand_aliasesrõ ràng?
% bash -O expand_aliases -c "alias hi='echo hello'; alias; shopt expand_aliases; hi"
alias hi='echo hello'
expand_aliases on
bash: hi: command not found
Tôi đang chạy GNU bash, version 5.0.0(1)-release (x86_64-pc-linux-gnu).
Bối cảnh: Tôi muốn có thể chạy bí danh ở mức ưu tiên nhàn rỗi, ví dụ: tập lệnh chứa:
#!/bin/bash
exec chrt -i 0 nice -n 19 ionice -c 3 bash -c ". ~/.config/bash/aliases; shopt -s expand_aliases; $(shell-quote "$@")"
Tôi muốn tránh sử dụng bash -ivì tôi không muốn .bashrcđọc.
bash -c "hi () { echo hello; }; hi"đầu ra hello.
zsh: bí danh zsh không mở rộng ngay cả với tùy chọncomplete_aliases