gpt4 book ai didi

linux - 双引号在别名中转义

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:48 24 4
gpt4 key购买 nike

我正在尝试在 Debian Stretch 中设置以下别名

alias myalias='watch -d -n 0.1 '\''find /path -type f -printf '%TY-%Tm-%Td\n' | sort | uniq -c'\'''

我试图用 '\'' 转义第一组引号,但它不适用于周围更深的引号

%TY-%Tm-%Td\n

当我运行命令时,我最终得到以下输出。 %TY-%Tm-%Td\n 周围的引号不再存在,输出不解释\n,结果在一行上。

Every 0.1s: find /root/bolero/bolero/pkl/stocks -type f -printf %TY-%Tm-%Td\n | sort | uniq -c

有什么想法可以让这项工作成功吗?

最佳答案

你正在寻找的输出是这样的:

alias myalias='watch -d -n 0.1 '\''find /path -type f -printf '\''\'\'''\''%TY-%Tm-%Td\n'\''\'\'''\'' | sort | uniq -c'\'''

当然,这非常复杂。

因为没有人愿意计算引号,让我向您介绍一个您可能不知道的 Git 功能:git rev-parse --sq-quote。如果您想知道如何将文本正确地用单引号引起来,请将该部分加双引号并将其传递给 git rev-parse --sq-quote。所以逐渐地,它看起来像这样:

$ git rev-parse --sq-quote "find /path -type f -printf '%TY-%Tm-%Td\n' | sort | uniq -c"
'find /path -type f -printf '\''%TY-%Tm-%Td\n'\'' | sort | uniq -c'
$ git rev-parse --sq-quote "watch -d -n 0.1 'find /path -type f -printf '\''%TY-%Tm-%Td\n'\'' | sort | uniq -c'"
'watch -d -n 0.1 '\''find /path -type f -printf '\''\'\'''\''%TY-%Tm-%Td\n'\''\'\'''\'' | sort | uniq -c'\'''

这就是您获得结果的方式。请注意,Git 会在行中插入一个前导空格,为了整洁起见,您可能需要将其删除。

关于linux - 双引号在别名中转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56612607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com