如何将命令行参数转换为bash脚本数组?
我想接受这个:
./something.sh arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)
并将其转换为
myArray=( arg1 arg2 arg3 )
Run Code Online (Sandbox Code Playgroud)
这样我就可以使用myArray在脚本中进一步使用了.
这个以前的SO帖子很接近,但没有讨论如何创建数组:如何在Bash中解析命令行参数?
我需要将参数转换为常规的bash脚本数组; 我意识到我可以使用其他语言(例如Python),但需要在bash中执行此操作.我想我正在寻找一个"附加"功能或类似的东西?
更新:我还想问如何检查零参数并分配一个默认数组值,并且由于下面的答案,能够使这个工作:
if [ "$#" -eq 0 ]; then
myArray=( defaultarg1 defaultarg2 )
else
myArray=( "$@" )
fi
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现自动录音功能,类似于Talking Tom应用程序.我使用以下代码从录音机读取输入并分析缓冲区:
float totalAbsValue = 0.0f;
short sample = 0;
numberOfReadBytes = audioRecorder.read( audioBuffer, 0, bufferSizeInBytes);
// Analyze Sound.
for( int i=0; i<bufferSizeInBytes; i+=2 )
{
sample = (short)( (audioBuffer[i]) | audioBuffer[i + 1] << 8 );
totalAbsValue += Math.abs( sample ) / (numberOfReadBytes/2);
}
// Analyze temp buffer.
tempFloatBuffer[tempIndex%3] = totalAbsValue;
float temp = 0.0f;
for( int i=0; i<3; ++i )
temp += tempFloatBuffer[i];
Run Code Online (Sandbox Code Playgroud)
现在我能够检测来自录音机的语音输入,我可以分析音频缓冲区.
缓冲区被转换为浮点值,如果它增加一定量,则假设背景中有一些声音并开始录制.但问题是该应用程序开始记录所有背景噪音,包括风扇/交流管声音.
任何人都可以帮我分析缓冲区来检测人声吗?或者还有其他方法可以从录音机输入中检测人声吗?
提前致谢,
我已经针对我的代码在Eclipse中运行了PMD插件,并且我正在获得类似于下面所示代码的高优先级警告:
if(singleRequest !=null){
// do my work
}else{
// do my other work
}
Run Code Online (Sandbox Code Playgroud)
PMD说`Avoid if (x != y) ..; else ..
;
错误的描述如下:
In an "if" expression with an "else" clause, avoid negation in
the test. For example, rephrase:
if (x != y) diff(); else same();
as:
if (x == y) same(); else diff();
Most "if (x != y)" cases without an "else" are often return
Run Code Online (Sandbox Code Playgroud)
但我仍然无法理解对我的代码的影响.如果有人可以用一个例子来指导我,我将不胜感激.
我们已经意识到将GZip格式的文件归档用于Hadoop处理并不是一个好主意.GZip不可拆分,以供参考,以下是我不会重复的问题:
我的问题是:BZip2是最好的归档压缩,它允许Hadoop并行处理单个归档文件吗?Gzip肯定不是,从我的阅读LZO有一些问题.
为什么在C++的某些编译器中使用int main()时不必包含return语句?Turbo C++怎么样?
因此Google现在拥有自己的IaaS解决方案,称为Google Compute Engine.
作为云计算的重要用户,我试图弄清楚亚马逊的EC2计算单元和GCEU(谷歌的计算引擎单元)之间的区别- 确定性价比差异等.
有没有人更深入地了解这两者之间的差异?
答案:看起来像1 GCEU~ = 1 EC2计算单位.以下是接受的答案.
为了处理不断增长的数据库表,我们在表名上进行分片.所以我们可以拥有这样命名的数据库表:
table_md5one
table_md5two
table_md5three
Run Code Online (Sandbox Code Playgroud)
所有表都具有完全相同的模式.
我们如何使用SQLAlchemy并动态指定与此对应的类的表名?看起来declarative_base()类需要预先指定tablename.
最终将有太多表来从父/基类手动指定派生类.我们希望能够构建一个可以动态设置表名的类(可以作为参数传递给函数.)
我对此做了一些研究,但未能找到任何实质性的答案,所以转向StackOverflow.
亚马逊S3在高可用性和可靠性方面的可靠性如何?我意识到它有SLA,但是如果AWS中的可用区(AZ)或整个区域出现故障怎么办?
我检查了亚马逊关于如何设置S3的文档.当您尝试创建存储桶时,它会说:"创建存储桶时,您可以选择一个区域来优化延迟,最小化成本或满足法规要求."
亚马逊也表示这一点(来源):"存储在任何给定的Amazon S3存储桶中的数据将在一个地理区域内的多个数据中心内复制."
因此,看起来S3数据分布在多个AZ中,但在一个区域内.
如果一个地区倒塌(以前发生过这种情况)怎么办?S3不可用吗?如果是这样,当AWS区域出现故障时,S3不是可靠的恢复备份机制,是吗?
如果我使用prefixfilter进行查询,我不知道为什么它会很慢.有人可以解释一下查询HBase的最佳方法,谢谢.
hbase(main):002:0> scan 'userlib',{FILTER=>org.apache.hadoop.hbase.filter.PrefixFilter.new(org.apache.hadoop.hbase.util.Bytes.toBytes('0000115831F8'))}
ROW COLUMN+CELL
0000115831F8001 column=track:aid, timestamp=1339121507633, value=aaa
1 row(s) in 41.0700 seconds
hbase(main):002:0> scan 'userlib',{STARTROW=>'0000115831F8',ENDROW=>'0000115831F9'}
ROW COLUMN+CELL
0000115831F8001 column=track:aid, timestamp=1339121507633, value=aaa
1 row(s) in 0.1100 seconds
Run Code Online (Sandbox Code Playgroud) 我有一个以下面的方式显示的祝酒词:
Toast.makeText(context, "The message", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
我绝对肯定我正在从UI线程显示吐司,我可以补充一点,它适用于许多设备,包括Galaxy S3的旧版更新,但在最新更新后,我的吐司都没有显示.
有没有其他人经历过这个并有解决方案?