Mặc dù đúng là bản thân một lệnh không thể tắt chế độ hiển thị, nhưng người dùng có thể yêu cầu trình bao Unix không ngắt lệnh cụ thể. Điều này thường được thực hiện bằng cách chỉnh sửa các tệp cấu hình của trình bao. Giả sử lệnh foo
có thể được tìm thấy dọc theo đường dẫn lệnh, bạn cần thêm thông tin sau vào tệp cấu hình thích hợp:
Đối với shell sh, bash và ksh:
alias foo='set -f;foo';foo(){ command foo "$@";set +f;}
Đối với shell csh và tcsh:
alias foo 'set noglob;\foo \!*;unset noglob'
Đối với trình bao zsh:
alias foo='noglob foo'
Đường dẫn lệnh không cần phải được sử dụng. Giả sử lệnh foo được lưu trữ trong thư mục ~ / bin, thì ở trên sẽ trở thành:
Đối với shell sh, bash và ksh:
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
Đối với shell csh và tcsh:
alias foo 'set noglob;$home/bin/foo \!*;unset noglob'
Đối với trình bao zsh:
alias foo='noglob ~/bin/foo'
Tất cả những điều trên đã được thử nghiệm bằng OSX 10.9.2 của Apple. Lưu ý: Khi sao chép đoạn mã trên, hãy cẩn thận về việc xóa bất kỳ khoảng trắng nào. Chúng có thể đáng kể.
Cập nhật:
Người dùng geira đã chỉ ra rằng trong trường hợp bash shell
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
có thể được thay thế bằng
reset_expansion(){ CMD="$1";shift;$CMD "$@";set +f;}
alias foo='set -f;reset_expansion ~/bin/foo'
điều này giúp loại bỏ sự cần thiết của hàm foo.
Một số trang web được sử dụng để tạo tài liệu này:
pwd
,echo *
chỉ là*