小编Tar*_*sch的帖子

使用bash自动化dotfiles

我想创建自己的自动dotfiles文件夹.(我将使用git在我的dotfiles上使用版本控制,但这与问题无关)

我只想要象征性地将所有文件和文件夹链接~/dotfiles到我的主文件夹.对bash一点都不好,我不能这样做.请帮我解决一下这个.

如果可能的话,我也会欣赏以下功能.

  • 文件夹只是浅层链接
  • 我的文件可能在dotfiles文件夹中没有文件名中的实际点(~/dotfiles/vimrc而不是~/dotfiles/.vimrc)
  • 它应该能够忽略一些文件,例如存储在同一文件夹中的.git文件

当然,如果您已经知道提供此服务的服务,那至少与提供一些自己的命令一样好.注意我特别希望它是bash或者很可能存在于所有unix机器上的东西(所以我猜使用g ++的命令很好).

unix bash dotfiles

6
推荐指数
1
解决办法
1917
查看次数

优雅的系统调用haskell

我正在建立一个网站,用户可以使用kerberos服务登录.虽然,这与我的问题无关.

由于我使用的是kerberos,我想使用系统调用来调用kinit,但我不知道最好的方法.

到目前为止我得到了:

module Kerberos where

system :: String -> IO ExitCode
-- system is loaded through imports

type Username = String
type Password = String

kerberosValidate :: Username -> Password -> IO Bool
kerberosValidate username password = fmap (== ExitSuccess) $ 
  system $ "echo " ++ password ++ " | kinit " ++ username 
Run Code Online (Sandbox Code Playgroud)

这样的东西,应该工作得一般.我有三个问题.

  • 没有的转义usernamepassword字符串.这很重要,因为有一个网站将任何收到的输入传递给此功能.
  • 理想情况下password不应该传递给kinit进程echo password |.是否有一些功能作为参数采用标准?
  • 同样username,username应该作为参数传递.我想rawSystem虽然解决了这个问题.

是否有任何系统功能可以帮助我在这里?

haskell kerberos system-calls

6
推荐指数
1
解决办法
954
查看次数

zsh中的多点路径,如`cd ....`

所有shell都理解这些命令:

$ cd .
$ cd ..
Run Code Online (Sandbox Code Playgroud)

zsh也会理解:

$ cd ...
$ cd ....
Run Code Online (Sandbox Code Playgroud)

如果你说:

$ alias -g ...='../..'
$ alias -g ....='../../..'
Run Code Online (Sandbox Code Playgroud)

现在,当我开始输入时,如何才能使其完成正确的制表工作cd ..../<TAB>?我记得它是在oh-my-zsh中实现的,但我现在已经停止使用了.

如果它不仅可以用于cd我想要执行,那么也将不胜感激cat ..../a/b/..../c/d | less.

zsh zsh-completion zsh-zle

6
推荐指数
4
解决办法
2307
查看次数

是什么让Ctrl + Q在zsh中工作

我是一个zsh用户,他开始使用简单的oh-my-zsh配置,现在我尝试通过将我关心的部件从oh-my-zsh导入到我自己的部分来学习zsh .zshrc然后完全删除哦-my-zsh .

当我现在终于冷火鸡并删除了oh-my-zsh时,我注意到我最常用的快捷方式之一,Ctrl+ Q已停止工作.我已经对此进行了调查,并push-line根据此来源找到了要调用的命令.

我不知道如何开始使用ZLE功能.我甚至不确定如何检查zle是否正在运行.我试了几个小时试图搜索oh-my-zsh存储库,但没有找到激活的命令push-line.

为了让Ctrl+ Q工作,我需要做什么?哦,我的zsh做了什么,我需要把它放在自己的zshrc

zsh

5
推荐指数
2
解决办法
927
查看次数

zsh中的本地数组

Zsh有两个很好的功能,local关键字和数组概念.

local my_var # Declare variable local to this function
Run Code Online (Sandbox Code Playgroud)

arr=(1 2 3) # Create array with 3 elements
arr+=4 # Add a fourth element
Run Code Online (Sandbox Code Playgroud)

分别.

将它们组合起来的想法(local arr=())是不可抗拒的,但似乎只是给出错误?可能吗?

arrays zsh local-variables

3
推荐指数
2
解决办法
3927
查看次数

递归定义的 Haskell Data.Array 和严格性的直觉是什么?

考虑这个 Haskell 程序

module RecursiveArray where

import Data.Array ( (!), listArray, Array )

goodArray :: Array Int Int
goodArray = listArray (0, 1) (go 0)
  where
    go x = x : go ((goodArray ! x) + 1)

badArray :: Array Int Int
badArray = listArray (0, 1) (go 0)
  where
    go !x = x : go ((badArray ! x) + 1)

main = do
  print goodArray
  print badArray
Run Code Online (Sandbox Code Playgroud)

哪个将打印

> runghc "RecursiveArray.hs"
array (0,1) [(0,0),(1,0)]
array <program stalls here>
Run Code Online (Sandbox Code Playgroud)

我需要一些帮助来理解这里发生的事情。人们可以使用等式推理来理解正在发生的事情吗?数组内部表示相关吗? …

arrays haskell lazy-evaluation strictness

1
推荐指数
1
解决办法
85
查看次数