我编写了我的c shell脚本,需要确定命令状态.在下面的程序
line 4
命令没有成功.但我的状态仍然存在0
.我不懂为什么.根据我的理解,我应该得到1
.我对吗?Line No 3
命令成功.我知道这是一个非常基本的问题,但它不是家庭作业.我们需要确定工作状态所以我尝试过简单的脚本
Line 4
给我一个错误,它无法加载此版本工具
1 #!/bin/csh -f
2 source /global/etc/csh.cshrc
3 module unload her
4 module load her/2012
5 echo $status
6 if ( $status != 0) then
7 echo "Error: abhishek Unable to execute module load her/2012"
8 exit
9 endif
Run Code Online (Sandbox Code Playgroud)
问题是你在echo命令后测试状态.echo命令成功,因此它将状态重置为0.以下是一些显示问题的示例代码
#!/bin/csh -f
sh -c "exit 2"
echo status is $status or $?
echo status is $status or $?
Run Code Online (Sandbox Code Playgroud)
哪个输出
status is 2 or 2
status is 0 or 0
Run Code Online (Sandbox Code Playgroud)
您可以做的另一件事是使用#!/ bin/csh -fe,这会导致脚本在发生错误时立即退出.
归档时间: |
|
查看次数: |
18522 次 |
最近记录: |