eval用来在执行命令时作二次解析:主要是每次执行一个shell命令它会先检察一次,看到有$标志就会把值替换一次,然后再执行一遍。eval不会唤起起另一个shell来执行,而是在本身这个shell内多解析一次,所以替换的结果可以保留下来使用。

官方说明:

NAME

    eval: eval [arg ...]
 &nbsp...

Continue reading>>

首先, 调试要比编写代码困难得多, 因此, 如果你尽可能聪明的编写代码, 你就不会在调试的时候花费很多精力.Brian Kernighan

Bash并不包含调试器, 甚至都没有包含任何用于调试目的的命令和结构. 脚本中的语法错误, 或者拼写错误只会产生模糊的错误信息, 当你调试一些非功能性脚本的时候, 这些错误信息通常都不会提供有意义的帮助.

例子 29-1. 一个错误脚本

 &nb...
Continue reading>>

目录:

特殊的shell变量

变量含义
$0脚本名字
$1位置参数 #1
$2 - $9位置参数 #2 - #9
${10}位置参数 #10
$#位置参数的个数
"$*"所有的位置参数(作为单个字符串)...
Continue reading>>

转载自:https://blog.mythsman.com/post/5d2ab67ff678ba2eb3bd346f/

开头有 “蛇棒”

所谓 shebang 其实就是在很多脚本的第一行出现的以 "#!" 开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样:

#!/bin/bash

当然,解释器有很多种,除了 bash 之外,我们可以用下面的命令查看本机支...

Continue reading>>