linux之shell

shell是什么?

shell是一个命令行解释器,他为用户提供了一个想linux内核发送请求以方便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序

shell脚本的执行方式

脚本格式要求

1.脚本以#!/bin/bash开头
2.脚本需要有可执行过权限

编写一个脚本

创建一个脚本,输出hello world!

#!/bin/bash

echo "hello world"

脚本常用的执行方式

1.输入脚本的绝对路径或者相对路径

首先是授权,再执行脚本

2.不授权,sh+脚本直接执行

sh helloworld.sh 

shell变量

变量介绍

1.shell中的变量分为:系统变量和自定义变量
2.系统变量:\(HOME、\)PWD、\(SHELL、\)USER等等,比如:echo $HOME等等
3.显示当前shell中所有变量:set

shell变量语法

1.定义变量:变量=值
2.撤销变量:unset 变量
3.声明静态变量:readonly 变量,注意:不能unset

#!/bin/bash
# 定义变量A
A=2
# 输出便来那个需要加上$
echo $A
echo "A=$A"
# 撤销变量A
unset A
echo $A
# 生命静态变量B=2,不能unset
readonly B=2
echo $B
unset B

shell变量的定义

1.变量名称可以是字母、数字、下划线,但是不能数字开头
2.等号两侧不能有空格
3.变量名称一般是大写

将命令的返回值赋给变量

1.A=date反引号,运行里面的命令,并把结果返回给变量A
2.A=$(date)等价于反引号

# 将命令的返回值赋给变量
C=`date`
echo $C

D=$(date)
echo $D

设置环境变量

1.export 变量名=变量值(将shell变量输出为环境变量/全局变量)
2.source 配置文件(让修改后的配置信息立即生效)
3.echo $变量名(查询环境变量的值)

# tomcat_home的变量
echo "TOMCAT_HOME=$TOMCAT_HOME"

多行注释

:<<!
# 生命静态变量B=2,不能unset
readonly B=2
echo $B
unset B
!

位置参数变量

当执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。
比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息

$n:(n为数字,$0代表命令本身,$1-\(9代表第一个到第九个参数,10以上的参数,需要使用大括号包含,如\){10})
\(*:(这个变量代表命令行中所有的参数,\)*把所有的参数看成了一个整体)
\(@:(这个变量也代表命令行中所有的参数,不过\)@把每个参数区分对待)
$#:(这个变量代表命令行中所有参数的个数)


echo "$0 $1 $2 $3"

echo "所有的参数: $*"

echo "$@"

echo "参数的个数:$#"


执行命令
[root@localhost shellcode]# ./position.sh  100 200 300
./position.sh 100 200 300
所有的参数: 100 200 300
100 200 300
参数的个数:3

预定义变量

shell设计者事先已经定义好的变量,可以直接在shell脚本中使用

\[(当前进程的进程号) $!(后台运行的最后一个进程的进程号) $?(最后一次执行的命令的返回状态,如果这个变量的值为0,政令上一个命令正确执行;如果这个变量的值为非0.则证明上一饿命令执行不正确了) ```java #!/bin/bash echo "当前执行的进程id=$$" # 以后的方式运行一个脚本,并获取他的进程号 /home/jack/shellcode/const.sh & echo "最后一个后台方式运行的进程id=$!" echo "执行的结果是:$?" ``` \]

posted @ 2022-06-29 01:35  King-DA  阅读(94)  评论(0)    收藏  举报