小编Fra*_*ank的帖子

Rscript:确定执行脚本的路径

我有一个名为的脚本foo.R包含另一个脚本other.R,该脚本位于同一目录中:

#!/usr/bin/env Rscript
message("Hello")
source("other.R")
Run Code Online (Sandbox Code Playgroud)

但我想R发现other.R无论当前的工作目录是什么.

换句话说,foo.R需要知道自己的路径.我怎样才能做到这一点?

r file path rscript r-faq

234
推荐指数
14
解决办法
11万
查看次数

我在哪里可以找到适用于Mac OS X Lion的"make"程序?

刚刚将我的计算机升级到Mac OS X Lion并转到终端并键入"make",但它说:-bash:make:command not found

"make"命令在哪里?

macos makefile osx-lion

222
推荐指数
4
解决办法
19万
查看次数

执行前打印每个命令?

设置在执行命令之前打印每个命令的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,输出重定向到指定的文件.

bash

216
推荐指数
4
解决办法
12万
查看次数

是断言邪恶?

Go语言的创造者写的:

Go不提供断言.它们无疑是方便的,但我们的经验是程序员将它们用作拐杖以避免考虑正确的错误处理和报告.正确的错误处理意味着服务器在非致命错误而不是崩溃后继续运行.正确的错误报告意味着错误是直接的,并且可以避免程序员解释大的崩溃跟踪.当程序员看到错误时不熟悉代码时,精确错误尤为重要.

你对此有何看法?

c c++ error-handling assert go

195
推荐指数
11
解决办法
3万
查看次数

如何在Makefile目标中使用Bash语法?

我经常发现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执行命令.

bash shell makefile

194
推荐指数
3
解决办法
11万
查看次数

如何让gdb保存命令历史记录?

如何设置gdb以便保存命令历史记录?在开始新gdb会话时,我想使用向上箭头键来访问先前会话的命令.

debugging gdb

186
推荐指数
2
解决办法
2万
查看次数

在python shell中按箭头键时看到转义字符

在像交互式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中.

python ssh shell arrow-keys

175
推荐指数
13
解决办法
6万
查看次数

如何在Go中使用C++?

在新的Go语言中,如何调用C++代码?换句话说,我如何包装我的C++类并在Go中使用它们?

c++ wrapper go

158
推荐指数
6
解决办法
9万
查看次数

如何从C风格的数组初始化std :: vector?

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().有没有更好的方法?

c++ arrays stl vector

156
推荐指数
5
解决办法
12万
查看次数

在终端命令行上移动光标的最快方法是什么?

在终端中给定的非常长的命令行上移动的最佳方法是什么?

假设我使用了箭头键或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

bash terminal window

147
推荐指数
7
解决办法
14万
查看次数

标签 统计

bash ×3

c++ ×3

go ×2

makefile ×2

shell ×2

arrays ×1

arrow-keys ×1

assert ×1

c ×1

debugging ×1

error-handling ×1

file ×1

gdb ×1

macos ×1

osx-lion ×1

path ×1

python ×1

r ×1

r-faq ×1

rscript ×1

ssh ×1

stl ×1

terminal ×1

vector ×1

window ×1

wrapper ×1