小编Nic*_*lin的帖子

ZSH:读取命令在 bash 函数“read:1: -p: no coprocess”中失败

编辑:

似乎在bash. 看来问题与zsh. 如果有更好的网站可以发布此问题,请告诉我。


我正在编写一个创建一系列目录的简单脚本。我希望用户在我这样做之前给予确认。我使用以下作为基础,但似乎无法让它在 bash 函数中运行。如果我把它放在函数之外,它工作正常。这是一个孤立的例子:

读.sh

#!/bin/bash
test() {
  read -p "Here be dragons. Continue?" -n 1 -r
  if [[ $REPLY =~ ^[Yy]$ ]]
  then
    echo "You asked for it..."
  fi
}
Run Code Online (Sandbox Code Playgroud)

来自this SO post的代码。

获取文件和/或test导致以下错误:read:1: -p: no coprocess. 当我把它放在我的.bashrc

编辑::

@hennes

  1. 我希望该函数位于配置文件中,因此我可以从任何目录(最好是我的 .bashrc 或 .zshrc)调用它
  2. 我已经更正了第一行注释行的格式。问题仍然存在于zsh
  3. Bash 版本是 3.2,但您帮助我弄清楚问题出在 zsh 而不是 bash。

zsh bash-scripting

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

$PATH 充满了重复项

我最近开始配置 OSX 10.7 环境进行开发。我已经安装了 HomeBrew,并将以下内容添加到我的.bash_profile

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"        
Run Code Online (Sandbox Code Playgroud)

一切都很好,除非echo $PATH我收到以下重复字符串: /usr/local/bin:/usr/local/sbin:~/bin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:usr/local/bin:/usr/local/git/bin:/usr/local/git/bin:/usr/local/git/bin:/usr/local/git/bin:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

为了使其更具可读性,这些是所有路径:

/usr/local/bin
/usr/local/sbin
~/bin:/usr/local/bin
/usr/local/sbin
~/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
usr/local/bin
/usr/local/git/bin
/usr/local/git/bin
/usr/local/git/bin
/usr/local/git/bin
/usr/local/git/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/X11/bin
Run Code Online (Sandbox Code Playgroud)

除了我的.bash_profile. 我配对这些重复项的最佳方法是什么?有没有办法找出哪些文件正在修改我的路径并尝试消除它们?

terminal bash environment-variables

10
推荐指数
2
解决办法
8282
查看次数

下载 .tar 并将其解压缩到特定目录

我想下载 git repo 的 tar 并将其内容解压缩到另一个文件夹。

以下行(为了清楚起见而分解)有效:

curl -L -0 nt-dotfiles.tar.gz https://api.github.com/repos/nicktomlin/laptop/tarball \
 | tar --strip-components=1 -zx -C ~/Documents/dotfiles
Run Code Online (Sandbox Code Playgroud)

但给出了这个错误:

curl: (6) Could not resolve host: nt-dotfiles.tar.gz; nodename nor servname provided, or not known

我可以保持原样(因为它仍然有效),但我对错误很好奇,如果它消失了会感觉更好。

谢谢!

bash curl

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