官术网_书友最值得收藏!

Exit values

We can tell it was the rmdir command in the previous section that failed, because rmdir is the first word of the error message output. We can test the command in isolation, and look at the value of the special $? parameter with echo, to see its exit status:

$ rmdir ~/nonexistent
rmdir: failed to remove '/home/bashuser/nonexistent': No such file or directory
$ echo $?
1

The rmdir program returned an exit value of 1, because it could not delete a directory that didn't exist. If we create a directory first, and then remove it, both commands succeed, and the value of $? for both steps is 0:

$ mkdir ~/existent
$ echo $?
0
$ rmdir ~/existent
$ echo $?
0

Examining the exit values for the true and false built-in Bash commands is instructive; true always succeeds, and false always fails:

$ true ; echo $?
0
$ false ; echo $?
1

Bash will also raise an exit status of 127 for you if it can't find a way to run a command you request, such as notacommand:

$ notacommand ; echo $?
bash: notacommand: command not found
127

It's standard for programs to return 0 when they succeed, and something greater than 0 if they fail. Beyond that, programs vary in which exit values they choose for error conditions.

主站蜘蛛池模板: 武功县| 施甸县| 昆明市| 望都县| 三都| 九寨沟县| 韶关市| 磴口县| 郸城县| 峨山| 江西省| 克拉玛依市| 多伦县| 永安市| 涪陵区| 尉犁县| 达拉特旗| 华安县| 望江县| 阳信县| 盐边县| 遂川县| 阜新市| 齐齐哈尔市| 灵璧县| 吉林省| 方山县| 竹山县| 怀宁县| 巩留县| 阳西县| 堆龙德庆县| 宣武区| 炉霍县| 万宁市| 图们市| 工布江达县| 石渠县| 全椒县| 白水县| 文成县|