Blogger Information
Blog 41
fans 0
comment 1
visits 40355
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
高级bash脚本编程指南
yeyiluLAMP
Original
1015 people have browsed it

#!/bin/bash这一行是表示使用/bin/bash作为脚本的解释器,这行要放在脚本的行首并且不要省略
脚本正文中以#号开头的行都是注释语句,这些行在脚本的实际执行过程中不会被执行。这些注释语句能方便我们在脚本中做一些注释或标记,让脚本更具可读性。

运行Bash脚本的方式:

# 使用shell来执行
$ sh hello.sh
# 使用bash来执行
$ bash hello.sh
使用.来执行
$ . ./hello.sh
使用source来执行
$ source hello.sh
还可以让脚本本有者该执行权限,允许该用户执行该脚本
$ chmod u+rx hello.sh
# 执行命令,这身就具有可执行权限,通过chmod命令可以修改:
# 赋予脚本的所将使用脚本第一行指定的shell来执行,如果指定shell不存在,将使用系统默认shell来执行
$  ./hello.sh



遇到权限不够的提示,为什么,如何解决?
权限不够加sudo啊,可是你会发现

sudo cat /dev/null > /var/log/wtmp

一样会提示权限不够,为什么呢?因为sudo只能让cat命令以sudo的权限执行,而对于>这个符号并没有sudo的权限,我们可以使用

sudo sh -c "cat /dev/null > /var/log/wtmp "
sudo bash -c "cat /dev/null > /var/log/wtmp"



让整个命令都具有sudo的权限执行

/dev/null这个东西可以理解为一个黑洞,里面是空的(可以用cat命令看一看),什么东西都可以往里面扔,扔了就没了

vim cleanlog.sh

#!/bin/bash
LOG_DIR=/var/log
cd $LOG_DIR
cat /dev/null > wtmp
echo "logs cleaned up."
exit

执行

由于脚本中含有对系统日志文件内容的清除操作,这要求要有管理员权限.不然会报permission denide错误

使用sudo命令调用管理员权限才能执行成功:

$ sudo ./cleanlogs.sh

#!/bin/bash这一行是表示使用/bin/bash作为脚本的解释器,这行要放在脚本的行首并且不要省略
脚本正文中以#号开头的行都是注释语句,这些行在脚本的实际执行过程中不会被执行。这些注释语句能方便我们在脚本中做一些注释或标记,让脚本更具可读性。

为什么cleanlogs.sh可以将log文件清除?
因为/dev/null ,里面是空的,什么东西都可以往里面扔,扔了就没了




vim test2.sh

#!/bin/bash
echo "Hello";echo "World";
filename=ttt.sh
if [ -e "$filename" ];then
    echo "File $filename exists";cp $filename $filename.bak
else
    echo "File $filename not found";touch $filename
fi;

vim test3.sh

#!/bin/bash
varname=b
case $varname in
[a-z]) 
    echo "abc"
    ;;
[0-9]) 
    echo "123"
    ;;
esac;


反引号(`)
1.命令替换
反引号中的命令会优先执行,如:

$ cp `mkdir back` test.sh back
$ ls

先创建了 back 目录,然后复制 test.sh 到 back 目录


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!