快速了解shell常用内部命令和变量使用

目录

一、常用内部命令和变量使用

1、echo命令

2、eval命令

3、exec命令

 4、export命令

5、read命令

6、shift命令 

7、exit命令

二、脚本执行的方式和特点

1、交互式执行

2、作为程序文件执行

三、设置vim编辑sh文件的缩进为4个空格 

四、 $#,$*,$@,$n,$?的使用


一、常用内部命令和变量使用

1、echo命令

功能:用来输出字符串或者变量

参数:

        -n:不换行输出文件内容

        -e:解析转义字符

示例:

[root@localhost ~]# echo -n ada aax2
ada aax2[root@localhost ~]# 


[root@localhost ~]# echo -e ss\tad\taxs
sstadtaxs
[root@localhost ~]# echo -e "ss\tad\taxs"
ss    ad    axs

2、eval命令

结构:eval agrs

功能:当执行eval时,shell读入到agrs时,会把它们重新组成一个新的命令,然后执行

示例: 

[root@localhost ~]# a='data;tail -1 /etc/passwd'
[root@localhost ~]# echo $a
data;tail -1 /etc/passwd
[root@localhost ~]# eval echo $a
data
named:x:25:25:Named:/var/named:/bin/false

3、exec命令

功能:在不创建子进程的前提下,执行命令,执行完命令后进程终止

示例:

[root@localhost ~]# exec echo asd
asd

会立刻退出本进程

 4、export命令

功能:设置或显示环境变量

示例1:

[root@localhost ~]# export
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
....

示例2: 

[root@localhost ~]# a=123456    //定义变量a
[root@localhost ~]# export a    //把a变为环境变量
[root@localhost ~]# b=0        //定了变量b,但不成为环境变量
[root@localhost ~]# bash        //进入到一个子进程
[root@localhost ~]# echo $a    //输出a变量值
123456    
[root@localhost ~]# echo $b    //变量b没有值

[root@localhost ~]# unset a    //删除变量a
[root@localhost ~]# echo $a

[root@localhost ~]# 


示例3: 

        使用export和declare命令来定义环境变量,针对root用户的所有连接:root_data=root,针对所有用户的变量: all_data=all

[root@localhost ~]# all_data=all
[root@localhost ~]# read_data=root
[root@localhost ~]# export read_data
[root@localhost ~]# declare -x all_data 
[root@localhost ~]# env    //查看所有环境变量
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44.....
[root@localhost ~]# declare     //查看变量
quote () 
{ 
    local quoted=${1//\'/\'\\\'\'};
    printf "'%s'" "$quoted"
}
....

5、read命令

功能: 从标准输入内容中读取字符串等信息,并传递给shell内部定义的变量

参数:
     -p:
设置提示信息

     -t:设置等待时间,默认单位为秒

示例:

[root@localhost ~]# read -t 10 -p "please input your name: " name
please input your name: dada
[root@localhost ~]# echo $name
dada

读取俩个变量,name1,name2,其中name1包含空格

[root@localhost ~]# read name1;read name2
hello word 
!
[root@localhost ~]# echo $name1
hello word
[root@localhost ~]# echo $name2
!

6、shift命令 

功能:每使用一次shift命令,都会把所有位置参数依次往左移一个位置,并使位置参数$#减一,直到减到0位置

示例:

[root@localhost ~]# vim a.sh
//内容如下
#!/bin/bash
shift
echo $@
[root@localhost ~]# bash a.sh 11 22 33 44
22 33 44

7、exit命令

功能: 退出shell程序,可以选择一个数来作为返回状态,范围为0~255之间的整数,0代表成功,其余代表失败

示例: 

[root@localhost ~]# vim b.sh 
#!/bin/bash
echo "abc"
exit 222    
echo "mm21"
[root@localhost ~]# echo $?    
222                            //并没有执行后面的命令
[root@localhost ~]# 

二、脚本执行的方式和特点

1、交互式执行

示例: 

[root@localhost ~]# 
[root@localhost ~]# for i in `ls /etc`
> do
> if echo "$i" | grep "passwd"
> then
> echo "$i"
> fi
> done
passwd
passwd
passwd-
passwd-

2、作为程序文件执行

示例:

[root@localhost ~]# vim work1.sh
#!/bin/bash
for i in `ls /etc`
do
  if echo "$i" | grep "passwd"
  then
    echo "$i"
  fi
done
[root@localhost ~]# bash work1.sh 
passwd
passwd
passwd-
passwd-

三、设置vim编辑sh文件的缩进为4个空格 

[root@localhost ~]# vim .vimrc 
set tabstop=4
[root@localhost ~]# source .vimrc

四、 $#,$*,$@,$n,$?的使用

$#命令行参数的个数

$*: 以"参数1 参数2 参数3…"的形式返回所有参数的值 

$@: 参数1”“参数2”“参数3”…的形式返回所有的值

$n表示传递给脚本的第n个参数,例如$1表示第一个参数,$2表示第二个参数,$3表示第三个参数

$?前一个命令或者函数的返回状态码。

示例:

[root@localhost ~]# vim a.sh
#!/bin/bash
echo $#
echo $*
echo $@
echo $1
[root@localhost ~]# bash a.sh aa bb cc
3
aa bb cc
aa bb cc
aa
[root@localhost ~]# echo $?
0

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

维运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值