Some Bash Trick
1 介绍 本文介绍一些我写 Bash 脚本常用的技巧,帮助我们写一些比较复杂的 Bash 脚本。说句题外话,我个人觉得用 Bash 写脚本还是比 Python 方便,当然用 Python 写更简单,门槛更低。但是 Python 太大了,很多嵌入式系统中根本不适合安装,而 Bash 的话就没有这个问题。从我的经验来说,我觉得嵌入式系统更适合用 Bash,功能也足够强大。 2 通用模块 1 命令行解析 Bash 脚本通常需要通过命令行输入参数,这时候一个好的命令行解析功能就相当重要。这里提供一个可以解析 Option 和 Command 的解析函数。 #! /usr/bin/env bash COMMAND="" # hint for users function show_usage() { cat <<EOF Usage: $0 [options] ... OPTIONS: -h, --help Display this help and exit. -a, --aoption Change it to your option. -b, --boption Change it to your option. acommand Change it to your command. bcommand Change it to your command. EOF } function acommand() { # do acommand } function bcommand() { # do bcommand } function parse_cmdline() { # show hint when there is no args if [ "$#" -eq 0 ]; then show_usage exit 0 fi while [ $# -gt 0 ]; do local cmd="$1" shift case "${cmd}" in acommand) COMMAND="start" ;; bcommand) COMMAND="save" ;; -a| --aoption) some_avalue=$1 shift ;; -b| --boption) some_bvalue=$1 shift ;; -h | --help) show_usage exit 0 ;; -* | --*) show_usage exit 1 ;; esac done } parse_cmdline "$@" ${COMMAND} 3 一些技巧 经常使用 bash -c 当我们需要执行多条命令,并且可能涉及到一些改变当前环境的操作时,我们可以使用 bash -c “commnad1; command2; command3”,这样会创造出一个独立的 bash 环境,方便的将这些组合命令在一个环境中执行完成。 前面也可以加上 sudo 创造一个 root 环境。 ...