Bash内部变量
Bash内部变量
有些内部命令在目录列表时是看不见的,他们有Shell本身提供,常见的内部命令:echo,eval,execexport,readonly,read,shift ,wait,exit和点(.)
echo 变量名表
将变量名表指定的变量显示到标准输出
Evalargs
读入参数args ,并将他们组合成一个新的命令,然后执行
Exec命令参数
当Shell执行到exec语句时,不会去创建新的子进程,而是转去执行新的命令,当指定的命令执行完时,该进程(也就是当初的Shell)就终止了,所以Shell程序中的exec后面的语句将不再被执行
Export 变量名=value
Shell 可以用export把它的变量向下打入子Shell,从而让子进程继承父进程中的环境变量,但子Shell不能用export把他的变量向上带入父Shell
Readonly 变量名
从边准输入读字符床,传给指定变量
Shift 语句
Shift 语句按如下方式重新命名所有的位置参数变量,即 $2成为$1,$3成为$2…在程序中每使用一次shift语句,都使得所有的位置一次向左移动一个位置,并使位置参数$#减1,直到减到0为止。
ssh-copy-id –I pub
Vi /usr/bin/ssh-copy-id
举例:
if [ "-i" = "$1" ];then
shift
#check if we have 2 parameters left, if so the first is the new ID file
if[ -n "$2" ]; then
if expr "$1" : ".*\.pub" ; then
ID_FILE="$1"
else
ID_FILE="$1.pub"
fi
shift # and this shouldleave $1 as the target name
fi
else
if[ x$SSH_AUTH_SOCK != x ] ; then
GET_id="$GET_ID ssh-add -L"