如何获取其中的目录路径的Bash脚本位于,里面那个脚本?
例如,假设我想使用Bash脚本作为另一个应用程序的启动器.我想将工作目录更改为Bash脚本所在的目录,因此我可以对该目录中的文件进行操作,如下所示:
$ ./application
我tar在目录中有一堆文件,我想立即从中提取所有文件.但这似乎没有做任何事情:
$ tar xf *.tar
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?如何一次解压缩一堆文件?
几年前,我阅读了Recursive Make Considered Harmful论文,并在我自己的构建过程中实现了这个想法.最近,我阅读了另一篇关于如何实现非递归的文章make.所以我有一些数据点,非递归make适用于至少几个项目.
但我很好奇别人的经历.你尝试过非递归make吗?它让事情变得更好还是更糟?值得的时间吗?
最近我写了一些Lua代码,如:
local a = {}
for i = 1, n do
local copy = a
-- alter the values in the copy
end
Run Code Online (Sandbox Code Playgroud)
显然,这不是我想要做的,因为变量持有对匿名表的引用而不是Lua中表本身的值.Lua中的编程清楚地阐述了这一点,但我忘了它.
所以问题是我应该写什么而不是copy = a获取值的副本a?
我知道我可以在cron中每五分钟运行一次,如下所示:
*/5 * * * * /my/script
Run Code Online (Sandbox Code Playgroud)
如果我不希望它在12点,12点05分,12点10分运行,而是在12:01,12:06,12:11等运行怎么办?我想我可以这样做:
1,6,11,16,21,26,31,36,41,46,51,56 * * * * /my/script
Run Code Online (Sandbox Code Playgroud)
......但那很难看.有更优雅的方式吗?
这个问题我有一段时间以来一直有点恼火,而且从来没有到处寻找答案.
但是我想我至少可以问这个问题,也许有人可以解释一下.
基本上我使用的许多语言都使用语法糖来编写(使用C++中的语法):
int main() {
int a = 2;
a += 3; // a=a+3
}
Run Code Online (Sandbox Code Playgroud)
虽然在lua +=中没有定义,所以我必须写a=a+3,这也是关于语法糖.当使用更"有意义"的变量名称时,例如:bleed_damage_over_time或者它开始变得乏味的东西:
bleed_damage_over_time = bleed_damage_over_time + added_bleed_damage_over_time
Run Code Online (Sandbox Code Playgroud)
代替:
bleed_damage_over_time += added_bleed_damage_over_time
Run Code Online (Sandbox Code Playgroud)
所以如果你没有一个好的解决方案,我想知道如何解决这个问题,在这种情况下,我当然会有兴趣听到它; 但是为什么lua没有实现这种语法糖.
我指的是这个答案中的区别:
... bash不是用于编写应用程序,而是脚本编写.当然,您的应用程序可能有一些内务处理脚本,但不要写,
critical-business-logic.sh因为另一种语言可能更适合这样的东西.
作为使用多种语言的程序员,这似乎是C,Java和其他编译语言的势利.我不是在寻求加强我的意见或手工波澜的答案.相反,我真的想知道提到了哪些技术差异.
(我在日常工作中使用C,所以我不仅仅是防守.)
在默认的Amazon EC2 Linux安装(Amazon Linux AMI 2012.09.1)上安装Ruby 2.0.0和Rails 4.0.0beta1顺利进行.但openssl阻碍了(例如http://railsapps.github.com/openssl-certificate-verify-failed.html)并且很奇怪阻止openssl安装或导致RubyGem包管理器安装rails.
我该如何解决这些问题?
ruby-on-rails amazon-ec2 amazon-web-services ruby-2.0 ruby-on-rails-4
我正在处理的产品每天收集数千个读数并将它们存储为NTFS分区(Windows XP)上的64k二进制文件.经过一年的生产,一个目录中有超过300000个文件,而且这个数字还在不断增长.这使得从Windows资源管理器访问父/祖先目录非常耗时.
我试过关闭索引服务,但没有区别.我还考虑将文件内容移动到数据库/ zip文件/ tarball中,但对我们来说单独访问文件是有益的.基本上,这些文件仍然需要用于研究目的,研究人员不愿意处理任何其他事情.
有没有办法优化NTFS或Windows,以便它可以使用所有这些小文件?
我问了一个关于Lua性能的问题,并询问了回答:
你有没有研究过保持Lua性能高的一般技巧?即知道表创建而不是重用表而不是创建新表,使用'local print = print'等来避免全局访问.
这是一个与Lua模式,提示和技巧略有不同的问题,因为我希望答案能够特别影响性能,并且(如果可能的话)解释为什么性能会受到影响.
每个答案一个提示是理想的.
lua ×3
unix ×2
amazon-ec2 ×1
bash ×1
cron ×1
directory ×1
filesystems ×1
linux ×1
lua-table ×1
makefile ×1
ntfs ×1
optimization ×1
performance ×1
ruby-2.0 ×1
shell ×1
sysadmin ×1
tar ×1
terminology ×1
windows-xp ×1