一、Shell脚本使用步骤:

 1. 编辑文本文件,如hello.sh#!/bin/shecho "hello world"2. 添加可执行权限chmod a+x hello.sh3. 执行程序./hello.sh

二、shell脚本文件的编写规范
1、首行声明设置解析器,如:#!/bin/sh
2、注释语法:

单行注释:
# 注释内容
多行注释:
:<<!
注释内容
!

三、脚本文件执行的三种方式

1、sh解释器执行:
sh hello.sh
2、bash解释器执行:
bash hello.sh
3、路径执行方式(先赋权):
./hello.sh

四、多命令处理

在/root/ttest/创建testdir.txt,将“HELLO WORLD”写入testdir.txt文件

#!/bin/bash
touch /root/ttest/testdir.txt
echo "HELLO WORLD" >> /root/ttest/testdir.txt

五、shell变量介绍
查看系统环境变量

通过加载shell配置文件中的变量,共享给shell程序使用
系统级环境变量:shell环境加载全局配置文件中定义的变量
用户级环境变量:shell环境加载用户配置文件中定义的变量

env用于查看系统环境变量
set用于查看系统环境变量+自定义变量+函数

常见环境变量

自定义局部变量:

  1. 可由字母数字下划线组成,不能以数字开头 等号两侧不能有空格。
  2. 在bash环境中,变量默认类型为字符串类型,无法直接进行数值运算。
  3. 变量值如果有空格必须以双引号括起来。
  4. 不能使用关键字作为变量名字。
#变量的定义,var_name=value
age=年龄
#两种方式变量的查看:
$age #直接使用变量名
${age} #使用花括号
#使用花括号可以进行字符串拼接
增:age=年龄
查:echo $age 或者 echo ${age}
改:age=性别
删:unset age

六、常量

变量设置之后不可以修改叫常量

语法:先声明一个变量,再设置为只读,即为常量
val_name=123
readonly val_name

七、自定义全局变量

在当前脚本定义全局变量,这个全局变量可以在当前shell脚本中使用,也可以在子shell环境中使用。

#语法
export val_name1 val_name2
#创建两个sh脚本文件demo1.sh demo2.sh


八、特殊变量

1、$n
$1~$9代表第1个到第9个输入的参数,10个以上用${},即第10个用${10},$0代表获取文件名语法:
sh 脚本文件 输入参数1 输入参数2 ...2、$#
获取所有参数的个数3、$* $#
含义:都是获取所有参数,用于以后输出所有参数
区别:
不加双引号时,$* $#都一样,格式为:$1 $2...$n;
当加双引号时,"$*"获取所有字符串拼接成一个字符串“$1 $2...$n”
当加双引号时,"$#"获取一组参数列表对象"$1" "$2"..."$n"
通过循环可以看出区别,循环语法如下:
for var in 列表变量
do   #循环开始命令 #循环体
done #循环结束

九、常见问题
(1)服务器的编码如果不支持utf-8的话,sh脚本中输出中文就会报错,所以需要在sh脚本文件开头加上:

export LC_ALL=C.UTF-8
export LANG=C.UTF-8

shell脚本文件使用教程相关推荐

  1. linux执行加密的shell,Linux下Shell脚本文件的加密

    一些站长会对自己编写的网页文件进行加密,以免自己辛辛苦苦写出来的成果被盗用.而Linux程序员编写的Shell脚本文件,也是可以加密的.这样做的好处除了防止被盗用,还可以防止自己脚本文件中的密码泄露, ...

  2. xml文件、jsp文件、sql文件、shell脚本文件注释

    一,各种文件如何注释: 1.xml文件注释 注释以 <!-- 开始并以 --> 结束, 例如 <!--注释内容-->. 2.jsp文件注释 2. 1. html注释:      ...

  3. 使用Vim编辑运行shell脚本文件的经典步骤

    [操作步骤] 1.输入命令 vim test 进入Vim文本编辑器界面.示例shell脚本文件test的内容如下: #!/bin/bash # This script displays the dat ...

  4. shell脚本编写简易教程

    用了caffe有一段时间了,感觉自己写shell脚本的能力有待提高,特地从菜鸟笔记处系统的看了一遍,其实学习基础就可,内容也不多,我就不总结了.把网站上的内容用markdown重新编辑了一下,各位可以 ...

  5. linux下执行shell脚本文件,Linux下使用shell脚本自动执行脚本文件

    搜索热词 以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 #将tomcat中 ...

  6. Android之在linux终端执行shell脚本文件(通过aapt)得到apk包名

    1.问题 我们在ubuntu上经常想看到apk的包名,然后在终端通过pidcat.py packageName 过滤日志,我们常用的办法手机连接电脑,然后打开这个app adb shell dumps ...

  7. 如何执行shell脚本文件

    文章目录 一.使用 shell 命令解释器执行脚本 二.使用命令 source 执行脚本文件 三.使用路径方式执行脚本文件 为什么不能在当前目录直接执行当前目录下的脚本文件呢? 四.使用命令 exec ...

  8. 在linux中编写shell脚本文件,如何编写简单的Shell脚本(Script)文件之Linux的基本操作...

    如何编写简单的Shell脚本(Script)文件之Linux的基本操作 新建一个文本文件包含所需要的脚本.举例,我会使用pico编辑器写一个脚本用来运行程序tar,带上必要的可选项可以用来解压从因特网 ...

  9. linux脚本编程教程,shell脚本编程基础教程

    在Linux中,当你想要做什么事情的时候,可以通过输入命令传递给计算机,但也会有很多时候,我们需要计算机/服务器完成相同的任务,如果我们再一次一次输入命令执行的话,就会非常的不方便,要想让所有的事情变 ...

  10. shell脚本保姆级教程,附赠100个shell脚本案例!

    无论是系统运维,还是应用运维,均可分为"**纯手工"-> "脚本化"-> "自动化"->"智能化"** ...

最新文章

  1. java实现简易客户信息管理系统
  2. 整数转化成字符串; 字符串转换为整数
  3. Boost:BOOST_VERIFY的用法测试程序
  4. C/C++中Static和Const的作用
  5. numpy基础(part7)--多项式拟合
  6. CF5E-Bindian Signalizing【单调栈】
  7. 将Wiremock集成到Spring Boot Java Web应用程序中以模拟外部依赖关系
  8. [leetcode]从中序与后序/前序遍历序列构造二叉树
  9. SpringBoot整合Redis 主从复制_02
  10. timeshift备份你的Linux系统
  11. echart3 click点击事件使用
  12. android平台Camera采集数据ffmpeg进行编码探究
  13. 百度AI快车道PaddleNLP实战营空降南京,11月9日技术大咖线下开讲
  14. h5 如何录音保存上传_H5录音及保存到后台recorder.js实现
  15. 数学-泰勒展开和拉格朗日
  16. 带CAN唤醒能力的TJA1043
  17. python怎么保留整数输出_python怎么保留整数
  18. 一门课程学习转录组调控分析和R可视化第十四期 (线上线下开课)
  19. 论文那些事儿:《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》
  20. postman工具批量调用接口

热门文章

  1. 怎样停止魅族系统的推送服务器,实测可行!如何关闭魅族flyme系统的自带应用推送-魅蓝屏蔽设置...
  2. freeswitch java_freeSWITCH
  3. 利用Vitis开发基于ZCU106的神经网络加速器(二)——DPU编译及Demo
  4. FreeCAD源码分析:Part模块
  5. adb冲突 傲软_手机投屏到电脑软件
  6. PDF加密如何批量解除
  7. C#如何调用阿里云短信接口
  8. Js实现继承的6种方式
  9. js中继承的几种方式
  10. excel数据分析 - 10个数据透视表的优化技巧