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

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.

主站蜘蛛池模板: 阳曲县| 修武县| 清水县| 龙里县| 枣阳市| 天峻县| 南陵县| 海晏县| 竹北市| 晋宁县| 竹山县| 吐鲁番市| 新宁县| 荆州市| 桂林市| 金昌市| 乡宁县| 定远县| 阳新县| 金坛市| 兴化市| 阳新县| 秦皇岛市| 安溪县| 驻马店市| 黎川县| 鲜城| 定州市| 榕江县| 曲周县| 松桃| 精河县| 桑植县| 门源| 务川| 洪雅县| 明溪县| 巴彦县| 万全县| 华坪县| 玉林市|