Làm thế nào để bạn có được mô tả về các tùy chọn `shopt` có sẵn?


7

Cách chính tắc để truy cập tài liệu cục bộ trên bất kỳ tùy chọn Shell có sẵn shoptnào là gì?

Tôi đang sử dụng Ubuntu 12.04 và có thể chạy help shoptđể có được mô tả về những gì shopt:

shopt: shopt [-pqsu] [-o] [optname ...]
    Set and unset shell options.
    ...

Tôi có thể liệt kê các Tùy chọn Shell khác nhau và các giá trị của chúng ( shopthoặc shopt -p). Nhưng làm thế nào để tôi tìm ra những gì mỗi người thực sự làm mà không để lại sự thoải mái cho hộp Linux của tôi? Tôi không tìm kiếm các mô tả trực tuyến . Có một mantrang hoặc một cái gì đó tôi đang thiếu?


1
Thủ thuật nhanh ~man bash | grep "shopt"
Eddie B

Câu trả lời:


8

Xem phần "lệnh dựng sẵn shell" của man bash; nó có một mục để shoptmô tả tất cả các tùy chọn shell có sẵn. Đây là một đoạn trích:

   shopt [-pqsu] [-o] [optname ...]

   [...]

          autocd  If  set,  a command name that is the name of a directory
                  is executed as if it were the argument to  the  cd  com-
                  mand.  This option is only used by interactive shells.
          cdable_vars
                  If  set,  an  argument to the cd builtin command that is
                  not a directory is assumed to be the name of a  variable
                  whose value is the directory to change to.
          cdspell If set, minor errors in the spelling of a directory com-
                  ponent in a cd command will be  corrected.   The  errors
                  checked for are transposed characters, a missing charac-
                  ter, and one character too many.   If  a  correction  is
                  found,  the corrected file name is printed, and the com-
                  mand proceeds.  This option is only used by  interactive
                  shells.

          [...]

4

Bạn có thể tìm thấy danh sách các tùy chọn trong trang man dưới phần mô tả của shoptnội dung. Để mở trang man trong danh sách các tùy chọn, bạn có thể sử dụng lesstính năng cho phép bạn chạy một lệnh như tìm kiếm khi nó bắt đầu:

PAGER='less "+/^ *The list of shopt"' man bash

Để xem tài liệu này trong Thông tin:

info --index shopt bash

Nếu bạn muốn trích xuất phần có liên quan của trang man:

man bash | sed '/^ *The list of shopt/, /^ *suspend / p' | sed '$d'

hoặc (đẹp hơn, vì nó loại bỏ vết lõm)

man bash | awk '
    /^ *The list of shopt/ {indent=match($0, /[^ ]/)}
    /^ *suspend / && RSTART==indent {exit}
    indent {print substr($0, indent)}'

Nếu bạn muốn trích xuất mô tả của một tùy chọn (ví dụ sourcepath):

man bash | awk -v target=sourcepath '
    /^ *The list of shopt/ {shopt=1}
    shopt && $1==target {getline; indent=match($0, /[^ ]/)}
    indent {if (match($0, /[^ ]/)>=indent) print substr($0, indent); else exit}'
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.