#/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)
为什么?
我想使用类似的东西pdfs=$(echo *.pdf)并删除在不存在文件的情况下出现的错误消息。但文档仅提供了两个输出都被重定向组合的示例。
这有效:
ghost=$'\U1F47B'
PROMPT='time: %T $ghost > '
Run Code Online (Sandbox Code Playgroud)
但是有没有办法内联 Unicode 字符的十六进制版本呢?
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(我之前创建的)。这与问题有关吗?
我可以通过 检查单个域的可用性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”对于避免误报是必要的;答案已修改以包括这方面。
昨天我已将我的 MacOS 从 catalina 更新为 big sur。\n每当我打开终端时,都会出现以下错误。
\nLast 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) 我对 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 问题
我已经添加了
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 文件
它给出了更长的错误。任何帮助深表感谢
当我尝试在终端中执行 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) 例如,在 中zsh,您可以执行以下操作:
% cat < file1 < file2
Run Code Online (Sandbox Code Playgroud)
你会看到两者。如何zsh在对程序透明的同时做到这一点cat?
该cat程序在 POSIX 系统上读取STDIN_FILENO并打印STDOUT_FILENO,那么一个文件描述符如何指向多个打开的文件描述呢?在 中sh,仅执行最后一个重定向(最右侧)。