Shell杂记
来源:互联网 发布:arm单片机介绍 编辑:程序博客网 时间:2024/05/16 10:00
- 保证shell脚本的安全性。
在#!/bin/bash
后面加上-e
。-e
的作用是当当前脚本出现问题时就退出。 脚本出现错误时,如果不加-e
会继续执行下去,这种忽略错误的行为不是好行为。-v
的作用是打印当前脚本。可以在脚本出错退出时很方便的定位到出错的语句。
所以在脚本头该写的是:#!/bin/bash -ev
。 - 确保创建目录一定成功。
在mkdir
的时候,加上-p
的时候能够确保该文件夹创建成功,加上-m arg
配置权限。
所以下面语句mkdir -m 777 -p /path/to/dir
。这个语句,在目录/path/to/
下面创建dir
文件夹,并赋予777
即所有用户都可读写执行的权限。同时,该语句保证mkdir
一定成功,即如果dir
的任意上级目录不存在,系统都会创建该上级目录,直至dir
;如果dir
目录存在,则不做任意改动并返回成功,如果不加-p
,上面两种情况都会返回失败。 获取当前脚本所在目录。
在运行脚本的时候,确保脚本运行时所在的目录是非常重要的,脚本运行时目录会在调用这个脚本的目录。而很多时候我们希望脚本运行时的目录是在脚本所在的目录。以脚本/path/to/test.sh
为例。假设在path
目录下用语句./to/test.sh
调用。这个时候脚本运行环境的目录是在/path
下,而不是脚本所在目录/path/to
下。所以经常需要将脚本重新定位要它本身所在目录。DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
以脚本
/path/to/test.sh
为例,假设该文件中存在以上语句。在path
目录下用语句./to/test.sh
调用。
那么,语句${BASH_SOURCE[0]}
显示的是运行该语句时候的调用命令,即./to/test.sh
。然后dirname
就是./to
。之后,进入该目录并打印pwd
,就会得到路径/path/to
。这个就是脚本所在的目录。在脚本中安装一些依赖。
在脚本中,如果直接使用apt-get install
语句,经常要你确认安装,由于是在脚本中执行,显然是没有机会按y键的。
在安装语句中加上-y
选项,比如apt-get install -y libssl-dev
。这个就能默认确认安装了。- 确认root权限。
echo "Check use is root or not now."
ROOT_UID=0
if [ "$UID" -eq "$ROOT_UID" ]
then
echo "You are root."
else
echo "You are not root, please run as root"
exit 1
fi$UID
打印当前用户UID,root用户的UID是0.二者相等,那么自然当前用户是root。
此外,把if语句换成if [ "$whoami" -eq "root" ]
也行。$whoami
会打印当前用户的名字。
阅读全文
0 0
- shell 杂记
- shell杂记
- Shell杂记
- Shell杂记
- Unix Shell学习杂记
- shell编程杂记
- Shell学习杂记一
- Bourne Shell编程杂记
- shell语法杂记
- shell 学习杂记一
- Shell 学习杂记二
- shell脚本杂记
- shell 使用杂记(一)
- ubuntu上的shell 杂记
- ubuntu上的shell 杂记
- 杂记
- 杂记
- 杂记
- 阿里2017暑期实习内推面经
- php源码编译安装
- 数据结构与算法
- dpdk ring 性能测试
- 交警罚没系统数据一致性问题
- Shell杂记
- 滴滴新锐计划实习生面试经历
- poj3414(bfs)
- [POJ3090]Visible Lattice Points
- 百度华为实习生面试经历
- 几种脱机环境下安装依赖的方法
- BZOJ3437 小P的牧场 斜率优化
- java基础篇(四)——C中struct和java中class
- hashcode方法