Skip to content

Commit f6c5487

Browse files
committed
docs: edit variable
1 parent 795a259 commit f6c5487

2 files changed

Lines changed: 111 additions & 86 deletions

File tree

docs/script.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,27 @@ shift "$(($OPTIND - 1))"
250250

251251
变量`$OPTIND``getopts`开始执行前是`1`,然后每次执行就会加`1`。等到退出`while`循环,就意味着连词线参数全部处理完毕。这时,`$OPTIND - 1`就是已经处理的连词线参数个数,使用`shift`命令将这些参数移除,保证后面的代码可以用`$1``$2`等处理命令的主参数。
252252

253+
## 参数终止符 `--`
254+
255+
变量当作命令参数时,有时希望指定变量只能作为路径名,不能当作配置参数,这时可以使用参数终止符`--`
256+
257+
```bash
258+
$ myPath="~/docs"
259+
$ ls -- $myPath
260+
```
261+
262+
上面例子中,`--`强制变量`$myPath`只能当作路径名解释。
263+
264+
如果变量不是路径名,就会报错。
265+
266+
```bash
267+
$ myPath="-l"
268+
$ ls -- $myPath
269+
ls: 无法访问'-l': 没有那个文件或目录
270+
```
271+
272+
上面例子中,变量`myPath`的值为`-l`,不是路径。但是,`--`强制`$myPath`只能作为路径解释,导致报错“不存在该路径”。
273+
253274
## 别名
254275

255276
`alias`命令用来为一个命令指定别名,这样更便于记忆。下面是`alias`的格式。

0 commit comments

Comments
 (0)