什么是Bash?
Bash,全程(GNU Bourne-Again Shell )是一个为GNU计划编写的Unix shell,它是许多Linxu平台默认使用的shell
shell是一个命令解释器,是一种计算机语言,被称为解释性语言或脚本语言。shell也能被系统中其他有效的Linux 实用程序和应用程序所调用。
你可以从下面脚本的第一行看到 #!/bin/bash这行指定了你的程序将使用那个解释器,基本上是将路径引用到解释器上。Linux中有很多解释器,其中有一些是:bash、sh、zsh、csh等。
#!/bin/bash
# 第一行的“井号+感叹号+脚本解释器程序路径”,说明这是一个可执行的脚本
# 任意行的单独的”井号“都是注释作用,非第一行的“井号+感叹号“也是注释作用
# 避免问题:你的脚本是Bash Shell,系统默认的是Csh,若不声明,那么你的脚本运行错误
echo "Hello world"
当然,你可以通过Linux命令行查看你的系统中有哪些脚本解释器
cat /etc/shells
编辑vim定制开发模板
[root@NFS-30 ~]# cat .vimrc
set nu
set cul
set tabstop=2
set expandtab
set shiftwidth=2
set ai
set softtabstop=2
map <F2> :set paste <CR> o
map <F3> :set expandtab <CR> :%retab! <CR> :wq! <CR>
map <F4> :set binary <CR> :set noendofline <CR> :wq! <CR>
autocmd BufNewFile *.sh exec ":call SetTitle()"
function SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"#")
call setline(3,"#********************************************************************")
call setline(4,"#Author: ") ##名称
call setline(5,"#QQ: ") ##自己的邮箱地址,我用的是QQ
call setline(6,"#Date: ".strftime("%Y-%m-%d %H:%M:%S"))##时间
call setline(7,"#FileName: ".expand("%"))##你创建的脚本名称
call setline(8,"#URL: https://xxx.blog")##可以写自己的博客地址
call setline(9,"#Description: For personal learning Bash")##简介
call setline(10,"#Copyright (C): ".strftime("%Y")." All rights reserved")
call setline(11,"#********************************************************************")
call setline(12,"")
endif
endfunc
autocmd BufNewFile * normal G
Bash脚本的一个小练习
#!/bin/bash
#
#********************************************************************
#Author: yangrw
#QQ: 2589177716
#Date: 2024-01-18 19:11:24
#FileName: 001echo输出.sh
#URL: https://xxx.blog
#Description: For personal learning Bash
#Copyright (C): 2024 All rights reserved
#********************************************************************
echo "Hello World"
执行脚本
bash脚本执行的几种方式
1、在终端中直接执行
cd /opt/cron/
bash 001echo输出
2、使用sh命令执行
sh 001echo输出
3、将脚本修改权限,设置为直接执行
chmod +x 001echo输出 或 chmod 700 001 001echo输出
4、使用source命令直接执行
source 001echo输出
输出的结果
[root@hostname bash_script]# bash 001_HelloWorld.sh
Hello world
[root@hostname bash_script]# sh 001_HelloWorld.sh
Hello world
[root@hostname bash_script]# source 001_HelloWorld.sh
Hello world