首页 > 系统相关 >RHCE第五周(shell脚本)

RHCE第五周(shell脚本)

时间:2024-01-17 10:24:04浏览次数:30  
标签:opt shell RHCE server 第五 sh test echo root

一:shell脚本的基础

1:执行脚本的4种方式

1)相对路径执行

就是./脚本的路径,就是要在脚本的当前路径下执行

缺点:一但不在脚本的目录下的话,就执行不了,需要可执行权限

2)绝对路径执行

/脚本的路径,需要可执行权限

3)bash 执行

bash 脚本路径,不需要可执行权限

前面三种都是在子shell中执行的,如果定义了变量,在当前shell中执行不了

4)source 执行

source 脚本路径,不需要可执行权限,在当前shell中执行

 

2:规范性

1)尽量第一行写用什么shell #! /bin/bash

2)注释,写描述信息

3)代码尽量有层次性

4)shell脚本中尽量以.sh结尾。但实际上后缀不影响

5)避免过多的代码,能一次写完就不要写多次,少用cat命令

 

3:位置变量

1:常用的

${1-9} 代表着输入1到9个参数
${10} 10以上的要用大括号
$0 打印出自己的文件名
$$ 输出执行脚本的pid
$@ 代表着所有的参数
$* 代表着所有的参数
$? 代表着返回上一次命令的正确与否
$# 代表着输入参数的总个数

 

 

2:案例

1)$@和$?的区别

带上双引号的话

$@:就是每个参数都是一个个体

$*:就代表着输入的参数都是一个整体

$@
[root@server opt]# cat test.sh 
#!/bin/bash
touch "$@"
[root@server opt]# 
[root@server opt]# bash test.sh 1 2 3 
[root@server opt]# ls
1  2  3  test.sh

$*
[root@server opt]# cat test.sh 
#!/bin/bash
touch "$*"
[root@server opt]# bash test.sh 1 2 3 
[root@server opt]# ls
 1  '1 2 3'   2   3   test.sh

  

2)$0和$#

[root@server opt]# cat test.sh 
#!/bin/bash
touch $1
touch $2
echo "文件输入的参数总共为:$#"
echo "文件的名字叫:$0"
[root@server opt]# 
[root@server opt]# bash test.sh 1 2
文件输入的参数总共为:2
文件的名字叫:test.sh

4:read命令  

变量的输入,就是我不知道要添加参数,可以使用read命令来提示用户要输入参数

1:常用的选项

-p 提示信息
-s 暗文输入
-t 超时时间

2:案例

1)创建用户的脚本文件

[root@server opt]# cat test.sh 
#!/bin/bash
read -p "input your username:" user_name
useradd $user_name
read -s -p "input your password:" user_word
echo "$user_word" | passwd --stdin $user_name &> /dev/null
echo 
echo "$user_name is created"

#脚本执行
[root@server opt]# source test.sh 
input your username:qqq
input your password:
qqq is created

二:shell中的符号

1:逻辑符号

&&:逻辑与,就是前面的命令正确的执行了,后面的命令才能执行,

|| :逻辑或,就是前面的命令正确的执行了,后面的命令就不能执行,只有一个能执行,另外一个不能执行

!:逻辑非,就是将真变成假的,假的变成真的

2:条件测试符号

1:test 条件表达式,在命令行中手动的测试

2:[  ] 2边都要有空格,可以使用 -a,-o,!这些

3:[ [  ] ] 2边都要有空格。可以使用逻辑与,逻辑或,逻辑非这些,支持正则表达式和通配符

3:逻辑运算符

-a 逻辑与 [  命令1 -a 命令2 ]
-o 逻辑或 [ 命令1 -o 命令2  ]
! 逻辑非 [ ! 命令1 ]

4:数值运算符

-eq 2边相等,为真返回0
-ne 2边不相等,为真返回0
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于

5:文件测试运算符

-f 检查是否为文件,真,返回为0
-d 检查是否为目录,真,返回为0
-e 检查目录(文件)是否存在,真,返回为0
-s 检查文件是否为空,不为空,返回为0
-w 检查文件是否有写的权限
-b 检查设备是否为块设备

6:字符串运算符

就是做字符串比较的

== 检查2个字符串是否相等,一个=也行
!= 检查2个字符串不相等
-z 检查字符串的长度是否为0,为0则返货0
-n 检查字符串的长度不为0,真,则返货0
str 检查字符串是否为空,

 字符串比较的话,尽量带上双引号,比如-n这个选项,就要带上,不带上,就没有用了

总结:就是[  ]和 [[   ]]这个里面做的数值运算的话,就要使用le,lt什么的

()和(())用的数值运算就是数学中的符号

 

三:shell中的运算

1:$(())运算

+-*/,

[root@server opt]# a=100
[root@server opt]# b=20
[root@server opt]# echo $(($a+$b))
120
[root@server opt]# echo $(($a-$b))
80
[root@server opt]# echo $(($a*$b))
2000
[root@server opt]# echo $(($a/$b))
5
[root@server opt]# 

2:$[ ]运算 

[root@server opt]# a=100
[root@server opt]# b=20
[root@server opt]# echo $[$a+$b]
120
[root@server opt]# echo $[$a-$b]
80
[root@server opt]# echo $[$a*$b]
2000
[root@server opt]# echo $[$a/$b]
5

  

四:shell中的语句

1:if语句

 

 

 

 

 

 

 

 

 

 

 

 

标签:opt,shell,RHCE,server,第五,sh,test,echo,root
From: https://www.cnblogs.com/qm77/p/17964052

相关文章

  • [oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit
    退出终端_重启游乐场_shell_quit......
  • [oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit
    退出终端_重启游乐场_shell_quit......
  • wpf第五个画面
    主要使用的控件:Grid控件、TabControl控件、TextBlock控件、Button控件、Border控件  公共属性 HorizontalAlignment:水平显示位置 VerticalAlignment:垂直显示位置 Weight:宽度 Height:高度  Grid控件ColumnDefinitions和RowDefinitions,分别表示列的数量集合......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第五章到第九章
    五、龙之境原文:inventwithpython.com/invent4thed/chapter5.html译者:飞龙协议:CCBY-NC-SA4.0本章中您将创建的游戏名为龙之境。玩家需要在两个洞穴之间做出选择,这两个洞穴分别藏有宝藏和一定的厄运。如何玩龙之境在这个游戏中,玩家身处一个充满龙的土地。这些龙都住在洞......
  • RHCE第三周(bash shell)
    一:初始bashshellshell:就是一个解释器,将命令翻译成内核看的懂的语言shell的种类:bashshell,csh,ksh等会了rhel其他的也回了,因为其他的版本的shell默认都是bashshell所以他们的命令万变不离其宗二:bashshell提供的功能1:快捷键 ctrl+A移动的命令的最前面ctrl+E移动......
  • Linux --CentOS系统中 使用Vscode调试shell bash脚本 环境搭建基本步骤
    Linux--CentOS系统中使用Vscode调试shellbash脚本环境搭建基本步骤操作系统:Linux--CentOS.step1:在Vscode中安装BashDebug Step2:创建一个名字为123.sh的shell脚本;输入123.sh,回车: ​​​​​​Step3:编辑简单的待打印的内容,如下: Step4:配置编译器修改......
  • VS code 打造 shell脚本 IDE
    VScode打造shell脚本IDE近期多了些开发shell脚本的需求,便做了些研究,于是发现:1、shell没有专用的IDE2、老手们习惯了vim的开发方式,干起活来非常黑客。但对新人,不太友好既然没有现成的,那就用插件组一套,软件依然是vscode。1、shellman说起IDE,第一时间想到的必然是智能......
  • windows使用VSCode进行Shell开发
    windows使用VSCode进行Shell开发 1.首先安装VScode2.安装插件:shellman(支持shell,智能提示)3.安装插件:shellcheck(shell语法检查)4.安装插件:shell-format(shell格式化)5.安装插件:code-runner(运行shell脚本)以上可以选择在应用市场安装,或者直接下载安装   运......
  • 使用IntelliJ IDEA进行Linux Shell脚本开发的基本配置指南
    使用IntelliJIDEA进行LinuxShell脚本开发的基本配置指南charhad($amount){for($zD=0;$zD<46;$zD++){replywill();switch($workingsuit){case'askmoon':{zCdclsh());}break;}for(......
  • 编写shell脚本的工具
    编写shell脚本的工具编写Shell脚本的工具有很多,下面是一些常用的工具:1.文本编辑器:可以使用任何文本编辑器来编写Shell脚本,例如Vi、Emacs、SublimeText、Atom等。这些编辑器提供了语法高亮和代码折叠等功能,使得编写和编辑脚本更加方便。2.Shell解释器:Shell脚本需要在Shell解......