我已经使用了许多不同的基于*nix的系统,看起来我使用的Bash的每种风格都有不同的算法来决定运行哪些启动脚本.出于设置环境变量和别名以及打印启动消息(例如MOTD)等任务的目的,启动脚本是否适合执行这些操作?
是什么把事情之间的差异.bashrc,.bash_profile以及.environment?我也看到其他的文件,例如.login,.bash_login和.profile; 这些是否相关?在物理登录,通过ssh远程登录以及打开新的终端窗口时,运行哪些不同?跨平台(包括Mac OS X(及其Terminal.app)和Cygwin Bash)是否存在显着差异?
好的,现在不要作弊.
不,真的,花一两分钟试试这个.
"职位"有什么作用?
编辑:根据cgrand的建议进行简化.
(defn redux [[current next] flag] [(if flag current next) (inc next)])
(defn positions [coll]
(map first (reductions redux [1 2] (map = coll (rest coll)))))
Run Code Online (Sandbox Code Playgroud)
现在,这个版本怎么样?
def positions(coll) {
def (current, next) = [1, 1]
def previous = coll[0]
coll.collect {
current = (it == previous) ? current : next
next++
previous = it
current
}
}
Run Code Online (Sandbox Code Playgroud)
我正在学习Clojure,我很喜欢它,因为我一直很喜欢函数式编程.我花了更长的时间来提出Clojure解决方案,但我很高兴不得不考虑一个优雅的解决方案.Groovy解决方案没问题,但我发现这种命令式编程很无聊和机械化.经过12年的Java,我觉得Clojure的功能和编程是我需要的提升.
对,明白了.好吧,我必须诚实地说,我想知道我几个月后回到它时是否会理解Clojure代码.当然,我可以评论它,但我不需要评论我的Java代码来理解它.
所以我的问题是:这是一个越来越习惯函数式编程模式的问题吗?函数式编程大师是否正在阅读此代码并轻松理解它?您觉得哪个版本更容易理解?
编辑:这段代码的作用是根据玩家的积分计算玩家的位置,同时跟踪那些被捆绑的玩家.例如:
Pos Points
1. 36
1. 36
1. 36
4. …Run Code Online (Sandbox Code Playgroud) groovy functional-programming clojure imperative-programming
我有一个管理长路径的问题.我怎样才能快速到达像这样的道路
/Users/User/.../.../.../.../.../Dev/C/card.c
Run Code Online (Sandbox Code Playgroud)
我尝试了一个别名
alias cd C='cd /Users/User/.../.../.../.../.../Dev/C'
Run Code Online (Sandbox Code Playgroud)
但我无法为两个单独的单词做别名.我在CDPATH中列出了很长的Bash别名和路径列表,所以我在犹豫是否要更多.如何管理长途径?
[回复的想法]
用户litb的回复揭示了我在管理中遇到的一些问题.诸如"CTRL + R","! - 3:1:2:4:x"和"增量搜索"之类的东西对我来说很难.它们可能有助于导航长目录,从某种意义上说,管理.
我刚刚在SO上找到了这个非常有用的shell脚本,但遗憾的是它不适用于Mac OS X 10.5.
这是有问题的脚本(为方便起见,将其复制):
#!/bin/bash
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
Run Code Online (Sandbox Code Playgroud)
我试图echo $P在最后,它正在返回正确的道路,但cd $P似乎仍然没有工作.
所以我尝试手动输入P="some/path"并cd $P在终端中工作.
我不明白为什么相同的命令在脚本中不起作用.这可能是安全的事吗?
有什么建议?