+ -
当前位置:首页 → 问答吧 → 里面是我写的简单脚本,我错在哪里?谢谢!

里面是我写的简单脚本,我错在哪里?谢谢!

时间:2011-05-11

来源:互联网

引用:
这些命令都是 Linux 系统终端执行 help 命令之后出现的...
下面的命令都是直接从终端复制的,但是括号标点太多,空格都不起作用,至此带来的不便之处还请见谅...
引用:
问题一: Bash 脚本的命令是不是就这些啊?
问题二: 如果这些命令是 Bash 脚本的,那么其它的命令是不是就是调用的?
问题三: 这些命令是不是 Bash 内嵌的?
问题四: find / -name fg -print 为什么找不到 fg 可执行文件?
问题五: find / -name echo -print 能找到 echo 可执行文件,那么,这个命令是调用的吗?
Linux 系统终端... 写道:
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

JOB_SPEC [&] (( expression ))
. filename [arguments] :
[ arg... ] [[ expression ]]
alias [-p] [name[=value] ... ] bg [job_spec ...]
bind [-lpvsPVS] [-m keymap] [-f fi break [n]
builtin [shell-builtin [arg ...]] caller [EXPR]
case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]
command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option
complete [-abcdefgjksuv] [-pr] [-o continue [n]
declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N]
disown [-h] [-ar] [jobspec ...] echo [-neE] [arg ...]
enable [-pnds] [-a] [-f filename] eval [arg ...]
exec [-cl] [-a name] file [redirec exit [n]
export [-nf] [name[=value] ...] or false
fc [-e ename] [-nlr] [first] [last fg [job_spec]
for NAME [in WORDS ... ;] do COMMA for (( exp1; exp2; exp3 )); do COM
function NAME { COMMANDS ; } or NA getopts optstring name [arg]
hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...]
history [-c] [-d offset] [n] or hi if COMMANDS; then COMMANDS; [ elif
jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si
let arg [arg ...] local name[=value] ...
logout popd [+N | -N] [-n]
printf [-v var] format [arguments] pushd [dir | +N | -N] [-n]
pwd [-LP] read [-ers] [-u fd] [-t timeout] [
readonly [-af] [name[=value] ...] return [n]
select NAME [in WORDS ... ;] do CO set [--abefhkmnptuvxBCHP] [-o opti
shift [n] shopt [-pqsu] [-o long-option] opt
source filename [arguments] suspend [-f]
test [expr] time [-p] PIPELINE
times trap [-lp] [arg signal_spec ...]
true type [-afptP] name [name ...]
typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
umask [-p] [-S] [mode] unalias [-a] name [name ...]
unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done
variables - Some variable names an wait [n]
while COMMANDS; do COMMANDS; done { COMMANDS ; }

作者: Yume   发布时间: 2011-05-11

有些命令只能内嵌,比如 cd 和 fg。有些命令很常用,所以内嵌了加快运行,如 [ 和 echo。另外,找命令对应的可执行文件,可以用 which xxx。列出所有能找到的,用 which -a xxx

PS: which bash 也应该内嵌了。

作者: lilydjwg   发布时间: 2011-05-11

谢谢好心人指教...

另外,我用的这个版本的 Bash 里没有内嵌 which 命令到 Bash 里...

引用:
find / -name which -print
/bin/which


愿好人一生平安...

作者: Yume   发布时间: 2011-05-11

是不是放在 /bin 目录里的就是内嵌的?您刚刚说的 echo 正是在 /bin 目录里的,但是 [ 不在...

作者: Yume   发布时间: 2011-05-11

内部命令与外部命令区别
引用:
当你执行一个命令的时候.系统的寻找方式是:
alias / function / 内部命令/外部命令


引用:
速度有差别,内部命令不用启动一个子shell来执行,外部命令则需要启动一个子shell执行它。比如命令basename的执行速度明显不入${var##*/}


/bin目录一说 是路径问题 存在于PATH中

作者: remeber   发布时间: 2011-05-11

Yume, type xxx 看吧。所谓内部,也只是当前shell的内部而已。别当回事。

作者: eexpress   发布时间: 2011-05-11