SHELL 入门

SHELL 入门

##常用环境变量

echo $PATH #环境变量
echo $HOME #当前用户目录
echo $SHELL #所用的bash shell的路径
echo $PWD #当前脚本路径
echo $USER #当前用户名
echo $$ # 当前进程号

Shell脚本的执行

1.输入脚本的绝对路径或相对路径
2.bash或sh +脚本
3.在脚本的路径前再加". " 或source

区别:第一种和第二种会新开一个bash,不同bash中的变量无法共享。但是使用. ./脚本.sh 这种方式是在同一个shell里面执行的。

变量

A=`ls -la` #将执行结果返回给变量A
aa=123
cc="$aa"456
dd=${aa}789 #方便在字符串中确定变量的边界
echo $cc #输出 123456
echo $dd #输出 123789
NUM=10 
SUM="$NUM hehe"     
echo $SUM     #输出10 hehe
SUM2='$NUM hehe'
echo $SUM2    #输出 $NUM hehe
unset  NUM #销毁变量
echo $NUM

命令行传参

普通用法

执行 ./hellow.sh a b c d

echo $1 #输出 a
echo $2 #输出 b
echo $3 #输出 c
echo $* #输出 a b c d
echo $@ #输出 a b c d
echo $# #输出 4
for (( index=0; index <= $#; index++ ))
do
    echo ${!index}
done

1.$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号" “包含时,都以”$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数;

2.当它们被双引号" “包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;

3."$@" 会将各个参数分开,以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。

4.$? 执行上一个命令的返回值 执行成功,返回0,执行失败,返回非0(具体数字由命令决定)

5.$$ 当前进程的进程号(PID),即当前脚本执行时生成的进程号

6.$!后台运行的最后一个进程的进程号(PID),最近一个被放入后台执行的进程 &

shift用法

until [ $# -eq 0 ]
do
    echo "第一个参数为: $1 参数个数为: $#"
shift
done

别的有用的指令

wait #等待命令执行完成
expect 处理交互式命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值