AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-232089

roachsinai's questions

Martin Hope
roachsinai
Asked: 2019-07-22 02:55:26 +0800 CST

如何在 zsh 函数参数中添加双引号?

  • 2

我在 .zshrc 中定义了一个函数,如下所示:

fdtnxg () {
    find $1 -type $2 -name "$3" | xargs grep "${@:4}"
}

如果我想在当前目录中名称以开头的所有文件中使用fdtnxggrep ,我必须使用.alias mottt.fdtnxg . f "tt.*" "alias mot"

我想fdtnxg . f tt.* alias mot直接使用,但不能。有没有办法让它按我的预期工作?

我试图改变fdtnxg为:

fdtnxg () {
    find $1 -type $2 -name "\"$3\"" | xargs grep "${@:4}"
}

我试过这个,因为echo "\"123\""我得到了引号"123"。

shell-script shell
  • 1 个回答
  • 2384 Views
Martin Hope
roachsinai
Asked: 2019-02-20 09:11:27 +0800 CST

如何从 python 脚本的输出创建 shell 字典?

  • 0

我的 python 脚本打印一个字符串print("declare -A gaps=( [2019-2-24]=4 )"),我可以declare -A gaps=( [2019-2-24]=4 )在 bash shell 上运行以创建一个名为gaps.

在我的 bash 脚本中,我使用一个名为的变量gap_string来访问 python 脚本的输出。然后我用反引号包围了gap_string期望创建的字典,它失败了 got 和 error: declare: “[2019-2-24]=4”: is not a valid identifier。

更多细节:

我的 bash 脚本中的代码:

declare -A birthdays=(["${year}0120"]="GG")

gap_string=`/home/roach/.config/argos/LunarSolarConverter.py ${!birthdays[@]}`
if [ $? -eq 0 ]; then
    `$gap_string`
fi

我的 Python 脚本中的代码:

if __name__ == '__main__':
    converter = LunarSolarConverter()
    gaps_string = ["declare -A gaps=("]
    today = datetime.datetime.today()
    today_date = today.date()
    year = today.year
    isleap = (year % 4 == 0 and (year % 100 != 0 or year % 400 == 0))
    days_this_year = 366 if isleap else 365
    for i in range(1, len(sys.argv)):
        year, month, day = int(sys.argv[i][:-4]), int(sys.argv[i][-4:-2]), int(sys.argv[i][-2:])
        lunar = Lunar(year, month, day, isleap)
        solar = converter.LunarToSolar(lunar)
        gap = (datetime.date(solar.solarYear, solar.solarMonth, solar.solarDay) - today_date).days % days_this_year
        if gap <= 4:
            gaps_string.append(f"[{solar.solarYear}-{solar.solarMonth}-{solar.solarDay}]={gap}")
    gaps_string.append(")")
    if len(gaps_string) == 2:
        sys.exit(1)
    else:
        print(" ".join(gaps_string))
        sys.exit(0)

python脚本所做的就是把中国的农历改为日历,然后计算今天和具体的日历之间的天数,然后提醒我家人的生日。

bash shell-script
  • 2 个回答
  • 3486 Views
Martin Hope
roachsinai
Asked: 2019-02-18 06:40:50 +0800 CST

如何获取选择的文件路径并在 dolphin KDE 中复制并粘贴到 zsh 上?

  • 0
➜  ~ cat .zshrc | grep xclip
alias c="xclip -selection c"
alias -g v='"$(xclip -selection c -o)"'
➜  ~ v
zsh: 没有那个文件或目录: file:///home/roach/Downloads/pure.png
➜  ~ 

中文“没有那个文件或目录”的意思是“没有文件或目录”。

我想复制一个位于/home/roach/Downloads/pure.png. 在dolphin KDE中选择它并复制(单击鼠标右键,然后单击复制)后,有没有办法得到/home/roach/Downloads/pure.png而不是file:///home/roach/Downloads/pure.png上面显示的?

我认为是使用sed删除额外file://字符之类的命令,但没有得到正确的方法。

➜  ~ alias -g v='"$(xclip -selection c -o)|sed -e 's/file:\/\///'"'
➜  ~ v
zsh: 没有那个文件或目录: file:///home/roach/Downloads/pure.png|sed -e s/file:////
➜  ~ 

那么,如何纠正我的alias -g v?

zsh kde
  • 2 个回答
  • 1250 Views
Martin Hope
roachsinai
Asked: 2019-01-09 00:20:21 +0800 CST

如何在 bash 上获取剪贴板作为 Vim 的输入文件名?

  • 1

我安装xclip访问系统剪贴板,我的设置和一些操作如下:

➜  ~ cat .zshrc | grep xclip
alias c="xclip -selection c"
alias v="xclip -selection c -o"
➜  ~ which dict | c
➜  ~ v       
/usr/bin/dict
➜  ~ sudo vim ??  

/usr/bin/dict是一个python脚本。我想知道的是什么可以替代??我的最后一个命令可以使用 vim 打开文件/usr/bin/dict?

bash vim
  • 1 个回答
  • 148 Views
Martin Hope
roachsinai
Asked: 2018-10-22 22:09:12 +0800 CST

在 Bash 的字符串变量中使用 ~ 和不使用 ~ 有什么区别?[复制]

  • 3
这个问题在这里已经有了答案:
为什么波浪号 (~) 不在双引号内展开? (4 个回答)
3年前关闭。

我正在使用一个名为dotdrop的点文件管理软件。使用名为 的配置文件.env,内容如下:git_folder="~/code/Git".

在第一次使用它之前,也可以使用脚本来设置这个 dotfile 工具,如下所示,

#!/bin/bash

env1="~/Dropbox/.env"
env2="/mnt/d/Dropbox/.env"

if [ -f $env1 ]; then
    echo "Found dotdrop env file, installing dotfiles..."
    source $env1
    eval $(grep -v "^#" $env1) dotdrop --cfg=${git_folder}/dotfiles/config.yaml install
elif [ -f $env2 ]; then
    echo "Found dotdrop env file, installing dotfiles..."
    source $env2
    eval $(grep -v "^#" $env2) dotdrop --cfg=${git_folder}/dotfiles/config.yaml install
else echo "Pls sync environment files first!"
fi

如果我将我的配置文件存储在~/Dropbox/.env,当我运行脚本时,我就得到了"Pls sync environment files first!"(如果预期条件则运行)。如果配置文件存储在/mnt/d/Dropbox/.env,脚本将通过 elif 条件,这是预期的。

找到原因,直到我在 dubug 模式下运行脚本,并得到区别:

➜  scripts git:(master) ✗ bash -x dotdrop_setup.sh 
+ env1='~/Dropbox/.env'
+ env2=/mnt/d/Dropbox/.env
+ '[' -f '~/Dropbox/.env' ']'
+ '[' -f /mnt/d/Dropbox/.env ']'
+ echo 'Pls sync environment files first!'
Pls sync environment files first!

~所以,我认为和之间的区别/home/user是原因。

在我更改~为/home/roach(roach 是用户名)后,它可以工作。

➜  scripts git:(master) ✗ bash -x dotdrop_setup.sh
+ env1=/home/roach/Dropbox/.env
+ env2=/mnt/d/Dropbox/.env
+ '[' -f /home/roach/Dropbox/.env ']'
+ echo 'Found dotdrop env file, installing dotfiles...'
Found dotdrop env file, installing dotfiles...
+ source /home/roach/Dropbox/.env
++ git_folder='~/code/Git'
++ grep -v '^#' /home/roach/Dropbox/.env
+ eval git_folder='~/code/Git'
++ dotdrop '--cfg=~/code/Git/dotfiles/config.yaml' install
     _       _      _
  __| | ___ | |_ __| |_ __ ___  _ __
 / _` |/ _ \| __/ _` | '__/ _ \| '_ |
 \__,_|\___/ \__\__,_|_|  \___/| .__/  v0.22.0
                               |_|


0 dotfile(s) installed.

调试显示''环绕+ env1='~/Dropbox/.env'已删除,我认为这是原因。

但是,为什么?


附加问题,

alias dotdrop="eval $(grep -v "^#" $env1) /usr/bin/dotdrop --cfg=${git_folder}/dotfiles/config.yaml install"是一个配置添加到bashrc,zshrc等。如果我直接将它添加到我的脚本中它不起作用!

最后,发现我必须添加source $env,

那么为什么它在 bashrc 文件中工作?

bash shell
  • 1 个回答
  • 703 Views
Martin Hope
roachsinai
Asked: 2018-08-31 00:08:01 +0800 CST

Gnome 上的 Super+Tab 和 Alt+Tab 有什么区别?

  • 10

我在 Manjaro Gnome 3.28.3 上。

对于我的情况,他们做同样的事情,列出所有打开的应用程序的缩略图,如果你按Super或Alt,Tab 可以帮助你切换应用程序。

所以,我想做SuperTab不同AltTab的事情。喜欢SuperTab仅在此工作区上切换应用程序?

gnome3 workspaces
  • 2 个回答
  • 4663 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve