我有一个名为的脚本foo.R包含另一个脚本other.R,该脚本位于同一目录中:
#!/usr/bin/env Rscript
message("Hello")
source("other.R")
Run Code Online (Sandbox Code Playgroud)
但我想R发现other.R无论当前的工作目录是什么.
换句话说,foo.R需要知道自己的路径.我怎样才能做到这一点?
刚刚将我的计算机升级到Mac OS X Lion并转到终端并键入"make",但它说:-bash:make:command not found
"make"命令在哪里?
设置在执行命令之前打印每个命令的bash脚本的最佳方法是什么?
这对于调试来说非常有用.
我已经尝试过了:
CMD="./my-command --params >stdout.txt 2>stderr.txt"
echo $CMD
`$CMD`
Run Code Online (Sandbox Code Playgroud)
它应该做的是先打印出来:
./my-command --params >stdout.txt 2>stderr.txt
Run Code Online (Sandbox Code Playgroud)
然后执行./my-command --params,输出重定向到指定的文件.
该Go语言的创造者写的:
Go不提供断言.它们无疑是方便的,但我们的经验是程序员将它们用作拐杖以避免考虑正确的错误处理和报告.正确的错误处理意味着服务器在非致命错误而不是崩溃后继续运行.正确的错误报告意味着错误是直接的,并且可以避免程序员解释大的崩溃跟踪.当程序员看到错误时不熟悉代码时,精确错误尤为重要.
你对此有何看法?
我经常发现Bash语法非常有用,例如像diff <(sort file1) <(sort file2).中的进程替换.
是否可以在Makefile中使用此类Bash命令?我在考虑这样的事情:
file-differences:
diff <(sort file1) <(sort file2) > $@
Run Code Online (Sandbox Code Playgroud)
在我的GNU Make 3.80中,这会产生错误,因为它使用shell而不是bash执行命令.
在像交互式python shell这样的shell中,你通常可以使用箭头键在当前行中移动或获取以前的命令(使用向上箭头)等.
但是在我进入另一台机器并从python那里开始之后,我会得到以下会话:
>>> import os
>>> ^[[A
Run Code Online (Sandbox Code Playgroud)
最后一个角色来自向上箭头.或者,使用左箭头:
>>> impor^[[D
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
在常规bash中,箭头键工作正常.奇怪的行为只是在交互式python(或perl等)shell中.
std::vector从C风格的数组初始化a的最便宜的方法是什么?
示例:在下面的类中,我有一个vector,但由于外部限制,数据将作为C样式数组传递:
class Foo {
std::vector<double> w_;
public:
void set_data(double* w, int len){
// how to cheaply initialize the std::vector?
}
Run Code Online (Sandbox Code Playgroud)
显然,我可以调用w_.resize()然后循环遍历元素,或者调用std::copy().有没有更好的方法?
在终端中给定的非常长的命令行上移动的最佳方法是什么?
假设我使用了箭头键或Ctrl- R来获得这个长命令行:
./cmd --option1 --option2 --option3 --option4 --option5 --option6 --option7 --option8 --option9 --option10 --option11 --option12 --option13 --option14 --option15 --option16 --option17 --option18 --option19 --option20 --option21 --option22 --option23 --option24 --option25 --option26 --option27 --option28 --option29 --option30 --option31 --option32 --option33 --option34 --option35 --option36 --option37 --option38 --option39 --option40 --option41 --option42 --option43 --option44 --option45 --option46 --option47 --option48 --option49 --option50
Run Code Online (Sandbox Code Playgroud)
现在我需要移动(从行的开头或结尾开始)光标到--option25那里修改一些东西.
到达那里最快的方法是什么?我通常做的是Ctrl- A开始然后反复Alt- F逐字逐句前进(或者Ctrl- E结束Alt- B然后- 后退).但是在很长的路线上需要花费太多时间.必须有一种方法来搜索并直接跳转到我需要修改的部分,例如option25?