跟老男孩学shell -- 初步入门
一、什么是shellshell 是一个命令解释器
二、什么是shell脚本
清除/var/log/messages 日志文件内容的简单脚本命令
# cat old_2.2.sh#!/usr/bin/env bash# 清除日志文件内容,版本1cd /var/logcat /dev/null > messagesecho "logs cleaned up."# 优化版:
# cat old_2.3.sh#!/usr/bin/env bash# Version:v1.0# 包含命令,变量和控制流的语句清除messages日志文件的shell脚本LOG_DIR=/var/logROOT_UID=0# UID为0的用户,即root用户# 脚本需要使用root用户权限运行,因此,对当前用户进行判断,对不符合要求的用户发出友好提示,并且终断程序运行if [ "$UID" -ne "$ROOT_UID" ] # 如果当前用户不是root用户,则不允许执行脚本then echo "must be root to run this script." # 给出提示后退出 exit 1fi# 如果却换目录不成功,则给出友好提示,并退出cd $LOG_DIR || {echo "cannot change to necessary directory."exit 1}# 经过上面的判断,用户和目录都是正确的,下面判断情况messages文件内容,清除成功,则打印成功提示cat /dev/null > messages && {echo "Logs cleaned up."exit 0# 退出前返回0,0 表示成功,1表示失败}echo "Logs cleaned up fail."exit 1# 查看系统支持的shell类型
# cat /etc/shells/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin/usr/bin/tmux# 两种方法查看系统默认的shell
# echo $SHELL/bin/bash## grep root /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin# shell 脚本的建立和执行
在Linux系统中,默认使用 vi/vim 编写shell脚本
规范shell脚本
1. 脚本开头(第一行)
#!/usr/bin/env bash 指定shell解释器,"#!" 表示幻数,shell脚本在执行时,确定shell脚本运行的解释器(必须为脚本顶端的第一行)
2. bash 和 sh 的区别
sh 为 bash的软链接
3. 脚本注释
符号 "#" 表示单行注释
多行注释:
方法1:
:
页:
[1]