Shell Builtin Command 「enable」
type enable
執行
$ type enable
顯示
enable is a shell builtin
help enable
執行
$ help enable
顯示
enable: enable [-a] [-dnps] [-f filename] [name ...]
Enable and disable shell builtins.
Enables and disables builtin shell commands. Disabling allows you to
execute a disk command which has the same name as a shell builtin
without using a full pathname.
Options:
-a print a list of builtins showing whether or not each is enabled
-n disable each NAME or display a list of disabled builtins
-p print the list of builtins in a reusable format
-s print only the names of Posix `special' builtins
Options controlling dynamic loading:
-f Load builtin NAME from shared object FILENAME
-d Remove a builtin loaded with -f
Without options, each NAME is enabled.
To use the `test' found in $PATH instead of the shell builtin
version, type `enable -n test'.
Exit Status:
Returns success unless NAME is not a shell builtin or an error occurs.
Exit Status
執行
$ enable
顯示
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable compopt
enable continue
enable declare
enable dirs
enable disown
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable fg
enable getopts
enable hash
enable help
enable history
enable jobs
enable kill
enable let
enable local
enable logout
enable mapfile
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readarray
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable suspend
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait
再執行
$ echo $?
顯示
0
執行範例
執行
$ type test
顯示
test is a shell builtin
執行
$ type -a test
顯示
test is a shell builtin
test is /usr/bin/test
執行
$ enable | wc -l
顯示
61
表示有61筆。
執行下面指令,將「test」disable。
$ enable -n test
然後再執行
$ enable | wc -l
顯示
60
表示有60筆。
然後再執行
$ type test
顯示
test is /usr/bin/test
表示「builtin」的「test」被關閉了,改使用「/usr/bin/test」這個檔案(指令)。
執行下面指令,列出停用的列表。
enable -n
顯示
enable -n test
執行顯示所有的列表。
$ enable -a
顯示 (注意中間有一行「enable -n test」)
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable compopt
enable continue
enable declare
enable dirs
enable disown
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable fg
enable getopts
enable hash
enable help
enable history
enable jobs
enable kill
enable let
enable local
enable logout
enable mapfile
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readarray
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable suspend
enable -n test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait
執行下面指令,將「test」這個「builtin」啟用。
$ enable test
執行
$ type test
顯示
test is a shell builtin
然後再執行
$ enable | wc -l
顯示
61
恢復到一開始的61筆。
其他範例
範例一
執行
for i in $(enable -a | awk '{print $2}'); do
help $i;
echo =====================;
done
或是執行
for i in $(enable -a | awk '{print $2}'); do help $i; echo =====================; done | less
也可以執行
$ help $(enable -a | awk '{print $2}')
範例二
執行
for i in $(enable -a | awk '{print $2}'); do
type -a $i;
echo =====================;
done
或是執行
for i in $(enable -a | awk '{print $2}'); do type -a $i; echo =====================; done | less
也可以執行
$ type -a $(enable -a | awk '{print $2}')
範例三
執行
for i in $(enable -a | awk '{print $2}'); do
c=$(type -a $i | wc -l );
if [ "$c" == "2" ]; then type -a $i; echo =====================; fi
done
顯示
[ is a shell builtin
[ is /usr/bin/[
=====================
echo is a shell builtin
echo is /bin/echo
=====================
false is a shell builtin
false is /bin/false
=====================
kill is a shell builtin
kill is /bin/kill
=====================
printf is a shell builtin
printf is /usr/bin/printf
=====================
pwd is a shell builtin
pwd is /bin/pwd
=====================
test is a shell builtin
test is /usr/bin/test
=====================
true is a shell builtin
true is /bin/true
=====================