bash脚本基础

本文介绍如何创建和执行Bash脚本,包括基本语法、字符串输入到文件、日志清理操作以及处理权限不足的问题。通过示例,读者可以了解如何使用Bash进行简单的系统任务自动化。

新建bash脚本
vim hello.sh

#!/bin/bash
echo hello world

#!/bin/bash
在 BASH 中 第一行的 “#!” 及后面的 /bin/bash 就表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下,如果你的 Linux 系统比较特别,bash 也有可能被存放在 /sbin 、/usr/local/bin 、/usr/bin 、/usr/sbin 或 /usr/local/sbin 这样的目录下;如果还找不到,你可以用 locate bash ,find / -name bash 2>/dev/null 或 whereis bash 这三个命令找出 bash 所在的位置;如果仍然找不到,那你可能需要自己动手安装一个 BASH 软件包了

执行bash程序

sh hello.sh
bash hello.sh
. ./hello.sh

chmod u+rx hello.sh
./hello.sh

脚本中将字符串输入到文件中

#!/bin/bash
echo "hello world" > my.txt

使用脚本清除/var/log下的log文件

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

1. 遇到权限不够的提示,为什么,如何解决?
权限不够加sudo啊,可是你会发现权限不够加sudo啊,可是你会发现
sudo cat /dev/null > /var/log/wtmp
一样会提示权限不够,为什么呢?因为sudo只能让cat命令以sudo的权限执行,而对于>这个符号并没有sudo的权限,我们可以使用
sudo sh -c "cat /dev/null > /var/log/wtmp "
让整个命令都具有sudo的权限执行

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

注释

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#转义 去掉#原本的注释效果
数制转换(使用二进制表示),不是一个注释,双括号表示对于数字的处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值