如果不满足所需的参数计数,我希望我的Bash脚本能够打印错误消息.
我尝试了以下代码:
#!/bin/bash
echo Script name: $0
echo $# arguments
if [$# -ne 1];
then echo "illegal number of parameters"
fi
Run Code Online (Sandbox Code Playgroud)
由于某些未知原因,我遇到以下错误:
test: line 4: [2: command not found
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
打电话的时候execl(...),我得到一个errno=2.这是什么意思?我怎么知道这个的含义errno?
我想在Bash脚本中引发错误,消息"Test cases Failed !!!".在Bash中如何做到这一点?
例如:
if [ condition ]; then
raise error "Test cases failed !!!"
fi
Run Code Online (Sandbox Code Playgroud) 这更多是关于程序的调用,而不是任何语言或解析器(尽管我确信选择的解析器库可以依赖于此).看,我使用了很多Linux命令行实用程序.并且有一些明显的模式; ' - '在单个字母前面用于短选项,不带参数的多个选项可以组合,' - '在长版本的选项之前,依此类推.
但是,在某些情况下,大写用于反转选项.因此,' - d'可能意味着作为守护进程运行,但' - D'将不会作为守护进程运行.(如果你不想要它,为什么不省略选项?这一点从来都不清楚,但它实际上相当普遍,所以我认为必定有一些原因.)但在某些程序中,资本是完全不相关的选择; 如果'-d'作为守护进程运行,' - D'可能是启用调试模式.这背后是否有某种首要原则,哪种选择最好?或者我们只是处理"无论什么工作"?
除了(或代替)带参数的选项之外,还有一些命令只需要单独的参数.cp就是一个很好的例子; 除了一对很少使用的切换之外,它接收的最后一个参数被假定为目的地,并且选项列表和目的地之间的任何参数都被认为是源.是否有经验法则依赖于这样的顺序"好",而不是使用带参数的显式选项标志?
在纱线上运行火花时,我一直看到退出代码和退出状态:
以下是一些:
CoarseGrainedExecutorBackend: RECEIVED SIGNAL 15: SIGTERM
...failed 2 times due to AM Container for application_1431523563856_0001_000002 exited with exitCode: 10...
...Exit status: 143. Diagnostics: Container killed on request
...Container exited with a non-zero exit code 52:...
...Container killed on request. Exit code is 137...
我从来没有发现任何这些消息是有用的......有没有机会解释这些消息究竟出了什么问题?我搜索了高低不一的表格来解释错误,但没有.
我能够从上面解释的唯一一个是退出代码52,但那是因为我在这里查看了源代码.这是说这是一个OOM.
我是否应该停止尝试解释其余的退出代码并退出状态?或者我错过了一些明显的方式,这些数字实际意味着什么?
即使有人能告诉我之间的差异exit code,exit status以及SIGNAL这将是有益的.但我现在只是随机猜测,而且我周围的其他所有人都使用了火花.
最后,为什么一些退出代码小于零以及如何解释这些?
例如 Exit status: -100. Diagnostics: Container released on a *lost* node
我将我的提示符(bash)配置为打印出最后一个命令的退出代码,如果它不成功(也就是不为零).因此,我看到很多退出代码,即使程序似乎没有遇到任何问题.有没有办法查找这些退出代码的含义?
我总是尝试手册页,信息页面或" - help"选项,但无济于事.
为了澄清,我问来与Linux的公用事业,如cd,ls,du,...
段错误返回的进程有什么错误代码?从我的实验来看,它似乎是"139",但我想找到为什么会这样,它是多么标准.
我使用以下行来进行简单的系统调用:
system ("mkdir -p Purged") or die "Failed to mkdir." ;
Run Code Online (Sandbox Code Playgroud)
执行脚本确实使系统调用,我可以找到一个名为Purged的目录,但仍然会打印错误消息并且脚本将死亡.我的语法有什么问题?
是否有标准的应用程序返回代码集?比如返回0表示成功1表示失败,然后等等?
我有一个Windows Server应用程序,我正在添加一些返回错误代码,并希望坚持标准代码,除了我将需要的应用程序特定的代码.
我正在开发我的第一个Java项目,实现一个名为"HeartRates"的类,该类获取用户的出生日期并返回其最大和目标心率.除了一件事之外,主测试程序中的所有内容都有效,我无法弄清楚如何在捕获到异常后停止打印其余代码.
我不确定捕获异常的代码的整个部分,因为它是从教授给我们的内容中复制和粘贴的.如果任何人可以告诉我如何在发生错误后终止程序,或者打印自定义错误消息并停止程序进一步执行,我将不胜感激.
这是代码:
import java.util.Scanner;
import java.util.GregorianCalendar;
import javax.swing.JOptionPane;
public class HeartRatesTest {
public static void main(String[] args) {
HeartRates test= new HeartRates();
Scanner input = new Scanner( System.in );
GregorianCalendar gc = new GregorianCalendar();
gc.setLenient(false);
JOptionPane.showMessageDialog(null, "Welcome to the Heart Rate Calculator");;
test.setFirstName(JOptionPane.showInputDialog("Please enter your first name: \n"));
test.setLastName(JOptionPane.showInputDialog("Please enter your last name: \n"));
JOptionPane.showMessageDialog(null, "Now enter your date of birth in Month/Day/Year order (hit enter after each): \n");
try{
String num1= JOptionPane.showInputDialog("Month: \n");
int m= Integer.parseInt(num1);
test.setMonth(m);
gc.set(GregorianCalendar.MONTH, …Run Code Online (Sandbox Code Playgroud) linux ×4
bash ×3
c ×2
apache-spark ×1
coding-style ×1
die ×1
errno ×1
hadoop ×1
hadoop-yarn ×1
java ×1
perl ×1
pyspark ×1
shell ×1
standards ×1
system-calls ×1
unix ×1
windows ×1