linuxShell_格式和工具

简介: linuxShell_格式和工具

N.1 介绍

1)不同的shell解析器,功能不同,Centos默认使用的是/bin/sh 和 /bin/bash作为shell解析器。

而sh -> bash #它们是一个软连接的关系

N.2 脚本基本制作

N.2.1 格式

1)脚本的格式

(1)编辑 vi test.sh,以sh后缀。开头要以#!/bin/sh(指定解析器)为第一行 在下面编写命令。

#!/bin/bash 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的

(2)shell的路径。#!和#不是一个意思,前者不是注释,后者是注释。

(3)注:"冒号;" 可以使用换行enter来替代,每换一次行就代表一条命令。

而尾部加 \斜杠是由于一条命令写不下,所以要求尾部加斜杠。

2)脚本的符号使用

使用双引号:如果命令有特殊字符 美元符$, 反斜杠\, 反引号, 感叹号!。比如 \ 在单引号没有转仪功能,而在双引号就有转义功能。

使用单引号:就是一个完全的字符串。如果用了复杂的命令,也可以在双引号里面嵌入单号使用。

4)编辑脚本

[root@bigData111 ~] vim test.sh

#!/bin/bash

echo "helloworld"

5)执行

(1)不加自行权限的执行

[root@bigData111 ~] bash test.sh 

[root@bigData111 ~] sh test.sh #或者使用sh自行也是可以

使用该命令执行脚本可以不用给脚本加文件权限。

(2)加执行权限的执行

[root@bigData111 ~] chmod u+x test.sh

[root@bigData111 ~] test.sh #可以直接收入即可,就不用指定解析器了。

6)注意点:

其实脚本 test1.sh 不一定非要写后缀,直接写成test1(注 要有执行权限)只不过脚本目录要保存在 /root/bin/test1目录下面,然后不管在哪一个路径下,直接test1远行命令,都会自动到 /root/bin/该目录下先查找。即用户定义的linux命令优先执行,后执行系统提供的命令。

N.3 多命令分隔符

1)Linux 在一个命令行上执行多个命令

(1)[ ; ]

如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令。

(2)[ && ]

如果命令被 && 所分隔,那么命令可能不是一直执行下去,但是中间有错误的命令存在就不会执行后面的命令,没错就直行至完为止。

(3)[ || ]

如果每个命令被双竖线 || 所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确与否。如果执行到错误的命令就是继续执行后一个命令,一直执行到遇到正确的命令为止,注意,这不是”或“

N.4 命令嵌套

命令嵌套一定要用 ` ` 符号括起来,注意这个不是单引号,是斜单引号。

如下案例:

[root@cloud107 ~]# mkdir ` date +"%Y-%m-%d-%H:%M:%S"`.log

[root@cloud107 ~]# ll

drwxr-xr-x. 2 root root 6 8月 17 10:46 2022-08-17-10:46:08.log

N.5 shell脚本开发工具

IDEA环境配置: IDEA编写运行shell脚本 IDEA中编写并运行shell脚本的实现(IT技术)

这里编写不支持复杂的远行, 只支持一些基本的操作,有些命令只有linux有,不过可以做语法检查,这里是可以的。

格式没有写好会报错。所以先在idea编写好,然后放在llinux环境远行

 

相关文章
|
6月前
|
JSON API 开发工具
|
7月前
|
XML JSON 缓存
数据的格式与描述
数据的格式与描述
67 4
|
编解码 Linux vr&ar
如何使用ffmpeg将.m4a 格式转换为 pcma格式
ffmpeg是一款开源的万能媒体格式转换工具。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的
1473. A + B 格式
1473. A + B 格式
103 0
|
Web App开发 程序员 测试技术
代码即格式:你用过这些高效工具吗?
“工欲善其事,必先利其器。” 我在工作中也用到一些使用起来非常高效的工具,今天以 “代码即格式” 为主题,跟大家介绍下两个高效工具。
158 0
代码即格式:你用过这些高效工具吗?
|
区块链
技术|形式多样的 substrate 格式
技术|形式多样的 substrate 格式
322 0
技术|形式多样的 substrate 格式