如何在bash脚本中等待从该脚本生成的几个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?
简单的脚本:
#!/bin/bash
for i in `seq 0 9`; do
doCalculations $i &
done
wait
Run Code Online (Sandbox Code Playgroud)
上面的脚本将等待所有10个生成的子进程,但它总是会给出退出状态0(请参阅参考资料help wait).如何修改此脚本,以便它发现生成的子进程的退出状态,并在任何子进程以代码!= 0结束时返回退出代码1?
有没有更好的解决方案,而不是收集子流程的PID,按顺序等待它们并总结退出状态?
我想重构一个方法的mumbo jumbo以使其更易读,它可以根据我的喜好使用许多嵌套的IF.
你会如何重构这个?
public static void HandleUploadedFile(string filename)
{
try
{
if(IsValidFileFormat(filename)
{
int folderID = GetFolderIDFromFilename(filename);
if(folderID > 0)
{
if(HasNoViruses(filename)
{
if(VerifyFileSize(filename)
{
// file is OK
MoveToSafeFolder(filename);
}
else
{
DeleteFile(filename);
LogError("file size invalid");
}
}
else
{
DeleteFile(filename);
LogError("failed virus test");
}
}
else
{
DeleteFile(filename);
LogError("invalid folder ID");
}
}
else
{
DeleteFile(filename);
LogError("invalid file format");
}
}
catch (Exception ex)
{
LogError("unknown error", ex.Message);
}
finally
{
// do some things
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个.NET库,由于各种原因无法在GAC中注册.这个DLL(我们称之为SDK.dll)依赖于其他DLL来加载.
在编写使用此SDK.dll的程序时,我注意到我的程序无法在抛出FileNotFoundException的情况下加载dll.发生这种情况是因为虽然我能够找到引用的SDK.dll,但CLR无法加载其依赖项.
我发现解决问题的唯一方法是"复制本地"SDK.dll及其所有依赖项(由于部署问题我无法做到),或者将我的程序编译到与SDK.dll相同的目录中
有没有办法告诉SDK.dll在哪里查找它的依赖项,无论它的位置如何?也许SDK.dll.config文件可以帮忙吗?
我试图在git中提交一些文件时出现"尾随空白"错误.
我想在保存python文件之前自动删除这些尾随的空白字符.
你能配置vim来做到这一点吗?如果是这样,怎么样?
如果我有几个类,我需要的功能,但想要为组织单独存储,我可以扩展一个类同时拥有它们吗?
即 class a extends b extends c
编辑:我知道如何一次扩展一个类,但我正在寻找一种方法来使用多个基类立即扩展一个类--AFAIK你不能在PHP中做到这一点但是应该有办法解决它而不诉诸于class c extends b,class b extends a
我想使用ListView的GridView模式来显示我的程序将从外部源接收的一组数据.数据将包含两个数组,一个是列名,另一个是用于填充控件的字符串值.
我没有看到如何创建一个合适的类,我可以用作ListView中的Item.我知道填充Items的唯一方法是将它设置为具有表示列的属性的类,但我不知道运行时之前的列.
我可以动态创建一个ItemTemplate,如下所述:在运行时DYNAMICALLY创建WPF ItemTemplate但它仍然让我不知道如何描述实际数据.
任何帮助感激不尽.
在python中你通常使用PEP 8 - Python Code样式指南作为编码标准/指南吗?您还有其他正式标准吗?
图像我有一个使用OutputCache属性缓存的视图,但我仍然需要增加一个记录页面已被查看的计数器,我该怎么办呢?
我考虑创建自己的Custom ActionFilterAttribute,并使用Action Filter Order of Execution来记录这个..但我不确定它是否会起作用.
例如.
[IncrementViewCountFilter(Order=1)]
[OutputCache(Duration=60,Order=2)]
public ActionResult Index(int questionId)
{ ... }
Run Code Online (Sandbox Code Playgroud)
首先,我的假设是,如果调用OutputCache,并且页面被缓存,则不会运行控制器代码.
我猜测的下一个问题是IncrementViewCountFilter不会知道questionId,所以它如何知道要增加什么(因为它是在执行主索引代码之前执行的).
其次,如果IncrementViewCountFilter确实知道了问题..并且它获得了大量的点击,你不会希望它一直写到数据库......但只有当它达到某个数字时...然后你'冲洗' 输出.
有人有什么想法?
假设使用以下行提供过滤器标准输入:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
Run Code Online (Sandbox Code Playgroud)
如果有人告诉我如何编写一个只打印每4行的脚本会更好,在上面的示例输入的情况下:
line 1
line 5
line 9
Run Code Online (Sandbox Code Playgroud) 我知道我可以创建一个setter来检查一个值是否为NULL并执行某些操作.例:
<TextBlock>
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding SomeField}" Value="{x:Null}">
<Setter Property="TextBlock.Text" Value="It's NULL Baby!" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
但是如何检查"非"值...如"NOT NULL"或"NOT = 3"?这可能在XAML中吗?
结果:感谢您的回答......我知道我可以做一个值转换器(这意味着我必须使用代码,这不是我希望的纯XAML).但是,这确实回答了在纯XAML中有效"不"你无法做到的问题.但是,选择的答案可能是创建这种功能的最佳方式.很好找.
coding-style ×2
wpf ×2
.net ×1
app-config ×1
asp.net-mvc ×1
automation ×1
awk ×1
bash ×1
binding ×1
c# ×1
class ×1
datatrigger ×1
extends ×1
gridview ×1
listview ×1
oop ×1
outputcache ×1
php ×1
process ×1
python ×1
refactoring ×1
scripting ×1
shell ×1
unix ×1
vim ×1
visibility ×1
wait ×1
whitespace ×1
xaml ×1