标签: zsh

ZSH 仅循环数组的第一项

#/bin/zsh
servers=('10.138.0.8' '10.138.0.91')

for srv in $servers; do
   echo "Checking health for " $srv
   echo "=========================================="
   echo mntr | nc $srv 2181 
done
Run Code Online (Sandbox Code Playgroud)

当我执行时,我没有循环第二个值10.138.0.91,如下所示

[devops@devops]~% ./healthcheck/zookeeper.sh  
Checking health for  10.138.0.8
==========================================
zk_version      3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
zk_avg_latency  0
zk_max_latency  0
zk_min_latency  0
zk_packets_received     9
zk_packets_sent 8
zk_num_alive_connections        1
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count  4
zk_watch_count  0
zk_ephemerals_count     0
zk_approximate_data_size        27
zk_open_file_descriptor_count   28
zk_max_file_descriptor_count    4096
Run Code Online (Sandbox Code Playgroud)

为什么?

unix shell scripting zsh shebang

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

zsh:仅将标准错误重定向到 /dev/null

我想使用类似的东西pdfs=$(echo *.pdf)并删除在不存在文件的情况下出现的错误消息。但文档仅提供了两个输出都被重定向组合的示例。

zsh

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

有没有办法内联 Unicode 转义序列?

这有效:

ghost=$'\U1F47B'
PROMPT='time: %T $ghost > '
Run Code Online (Sandbox Code Playgroud)

但是有没有办法内联 Unicode 字符的十六进制版本呢?

unicode bash hex zsh sh

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

flutter doctor 'zsh:找不到命令'

zsh我已经安装了 flutter 并设置了适用于 Catalina 版本 mac 的文件的路径,但是当我运行 flutter doctor 或 flutter precache 时,我收到zsh:命令未找到:flutter。注意:我之前成功完成了这些步骤并设置了 android studio,但是当我尝试连接 Xcode 模拟器时遇到了问题,现在我不得不重新开始。

更新:当运行“flutter”或“flutter doctor”时,我收到此错误:Error when reading '../../../../documents/flutter/bin/cache/dart-sdk/bin/snapshots/pub.dart.snapshot': No such file or directory并显示pub upgrade10 次尝试后失败。我该如何解决这个问题?

当我ls -a在主目录中运行时,我看到那里有一个 .bash_profile、一个 .zshrc 文件和一个 .zprofile(我之前创建的)。这与问题有关吗?

zsh flutter

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

检查域可用性——避免抢先运行——使用通配符或正则表达式

我可以通过 检查单个域的可用性whois abc123.com

我不知道如何检查符合条件的整套域的可用性,例如XXX YYY. Z。其中 X 是任意 3 个相同的字母,Y 是任意 3 个相同的数字,Z 是 com、org 或 io 中的任意一个。喜欢 aaa111.org

这只是一个示例,但您明白了 -我想指定字符串、模式和结尾,并查看可用的内容。

我可以使用正则表达式进行这种字符串匹配,但我不知道如何将其应用于 shell 脚本。

我希望能够通过数组或正则表达式输入匹配条件,并输出所有匹配域的列表。

whois abc.com | grep "No match"在这里很有用,因为如果该域名未注册,则该字段为空;也许这可以成为剧本或类似内容的因素。它还将输出减少到一行,而不是whois默认输出的大量垃圾。

如果脚本可以与 bash、zsh 或 Fish 一起使用,我们将不胜感激。

您可能想知道,当您可以访问网站时,为什么还要从命令行执行此操作 - 原因是您正在寻找的域名通常在您实际搜索时就被盗用了。这是一种众所周知的现象,称为域名抢先交易,我今天就遇到了这种情况,因此我尝试了一种不经过注册商的本地自动化解决方案。

...

编辑回应评论:我不重视解决方案的“whois”方面,只是通过正则表达式或模式进行检查的能力。-- 编辑 2:事实证明“whois”对于避免误报是必要的;答案已修改以包括这方面。

dns bash search whois zsh

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

MacOs 终端与 zsh 的问题

昨天我已将我的 MacOS 从 catalina 更新为 big sur。\n每当我打开终端时,都会出现以下错误。

\n
Last login: Sat Nov 14 17:54:05 on ttys000\n/Users/amolbhure/.zshrc:6: no such file or directory: source~/.bash_profile\n/Users/amolbhure/.zshrc:104: compinit: function definition file not found\n/Users/amolbhure/.oh-my-zsh/oh-my-zsh.sh:78: compinit: function definition file not found\n/Users/amolbhure/.oh-my-zsh/lib/completion.zsh:75: bashcompinit: function definition file not found\nNo version set for command direnv\nConsider adding one of the following versions in your config file at /Users/amolbhure/.tool-versions\ndirenv 2.23.1\n/Users/amolbhure/.zshrc:113: compinit: function definition file not found\n/Users/amolbhure/.zshrc:117: compinit: function definition file not found\n/Users/amolbhure/.zshrc:121: compinit: function definition file not found\nNo version set for command …
Run Code Online (Sandbox Code Playgroud)

macos terminal zsh oh-my-zsh macos-big-sur

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

如何在命令行上指定列表

我对 Hydra 有以下配置:

data_files: null
theta: 0.2
use_weights: true
Run Code Online (Sandbox Code Playgroud)

我可以将其重写为:

python -m apps.test_hydra data.data_files=x 
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将列表指定为:

python -m apps.test_hydra data.data_files=[x,y] 
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

zsh: no matches found: data.data_files=[x,y]
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是 zsh shell 或 Hydra 问题

python zsh fb-hydra

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

如何为 php 文件添加 php 存储库到 debian kali linux?

我已经添加了

packages.sury.org/php

通过脚本,我进入了 deb.sury.org

=============================================

#!/bin/sh
# To add this repository please do:

if [ "$(whoami)" != "root" ]; then
    SUDO=sudo
fi

${SUDO} apt-get update
${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates curl
${SUDO} curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
${SUDO} sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get update
Run Code Online (Sandbox Code Playgroud)

=============================================

运行脚本后报错:

Ign:5 https://packages.sury.org/php kali-rolling InRelease

Err:6 https://packages.sury.org/php kali-rolling Release

404  Not Found [IP: 102.129.144.44 443]
Run Code Online (Sandbox Code Playgroud)

然后继续。我什至无法添加 ubuntu 存储库,它给出了相同的结果,我认为一对一更糟糕。

我还将 [trusted=yes] 添加到 /etc/apt/sources.list.d/ 目录中的 php.list 文件

它给出了更长的错误。任何帮助深表感谢

php linux terminal zsh kali-linux

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

zsh 中的 $PATH(我认为) 搞砸了

当我尝试在终端中执行 ls 时,它说找不到命令。

在我破坏一切之前, echo $PATH 的输出是这样的:

/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/gabrijelagavric/.gem/ruby/2.6.5/bin:/Users/gabrijelagavric/.rubies/ruby-2.6.5/lib/ruby/gems/2.6.0/bin:/Users/gabrijelagavric/.rubies/ruby-2.6.5/bin:

我试图跟随一些线程,但我似乎不明白我具体需要运行什么来更改我的 .zshrc 文件(该线程说要更改 .zshrc 中的 PATH 变量:在 zsh 上找不到命令

所以,我将其粘贴到终端中:

echo "export PATH=/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/gabrijelagavric/.gem/ruby/2.6.5/bin:/Users/gabrijelagavric/.rubies/ruby-2.6.5/lib/ruby/gems/2.6.0/bin:/Users/gabrijelagavric/.rubies/ruby-2.6.5/bin:" >> ~/.zshrc

进而source ~/.zshrc"

但后来我得到了这个回应

/Users/gabrijelagavric/.oh-my-zsh/oh-my-zsh.sh:117: command not found: rm
detect-clipboard:33: command not found: uname
/usr/local/opt/chruby/share/chruby/chruby.sh:5: command not found: ls
/Users/gabrijelagavric/.zshrc:export:107: not valid in this context: /Users/gabrijelagavric/.gem/ruby/2.6.5/bin:/Users/gabrijelagavric/.rubies/ruby-2.6.5/lib/ruby/gems/2.6.0/bin:/Users/gabrijelagavric/.rubies/ruby-2.6.5/bin:``` 
Run Code Online (Sandbox Code Playgroud)

path-variables zsh path

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

zsh 如何处理多个重定向?

例如,在 中zsh,您可以执行以下操作:

% cat < file1 < file2
Run Code Online (Sandbox Code Playgroud)

你会看到两者。如何zsh在对程序透明的同时做到这一点cat

cat程序在 POSIX 系统上读取STDIN_FILENO并打印STDOUT_FILENO,那么一个文件描述符如何指向多个打开的文件描述呢?在 中sh,仅执行最后一个重定向(最右侧)。

c operating-system zsh file sh

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