我希望能够将 shell 命令的输出保存为 PNG 图像,而不会丢失格式。有点像输出的屏幕截图。
\n\nsome-command-with-color | text-to-png a.png\n
Run Code Online (Sandbox Code Playgroud)\n\n我知道这个命令将文本转换为 PNG,但它不\xe2\x80\x99t 保留颜色:
\n\ntldr -c tldr | convert -page 4000x4000 -font FreeMono -pointsize 20 -background white -trim +repage -bordercolor white -border 15 text:- png:a.png\n
Run Code Online (Sandbox Code Playgroud)\n\n\n 今天我注意到我的一个 zsh 函数不起作用;我调查了这个问题,罪魁祸首是:
for i in a b
do
echo "$i"
done
0
0
Run Code Online (Sandbox Code Playgroud)
然后我打开了一个新的 zsh,一切正常:
for i in a b
do
echo "$i"
done
a
b
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释第一个对我来说很奇怪的原因吗?
我已pip install -U
别名为pi
. 我想跑:
zargs ~/scripts/python/**/requirements.txt -- pi -r
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我也试过这个丑陋的选择:
zargs ~/scripts/python/**/requirements.txt -- ${aliases[pi]} -r
Run Code Online (Sandbox Code Playgroud)
但它说(eval):2: command not found: pip install -U
。
我想 zargs 应该能够做这些事情,因为它是一个 zsh 内置的。
我喜欢能够... && add-arg 'something'
,并有“东西”被添加到位置参数,有点像一个 inverse shift
。
我试过... && set "$@ something"
,但这不起作用,尽管只是做set "$@ something"
(没有条件)似乎工作正常。
是否可以禁用双引号内的历史扩展?
我不希望完全禁用历史扩展,因为我仍在使用它,但我认为没有理由扩展字符串内的历史记录......
我期望的行为的一个例子:
$ echo "Hello!"
Hello!
$ !!
Hello!
Run Code Online (Sandbox Code Playgroud) 我想在一个文件中存储一些引号的数组(所以基本上是带有新行的真实世界的字符串)。我怎样才能实现它?我想将 IFS 设置为类似“xxxxxxxxx74765xxx”(这永远不会出现在我的字符串中)之类的东西,但当然,IFS 仅适用于单个字符。
我可以想到一些丑陋的技巧来做到这一点(例如,将那个无意义的字符串存储为元素之间的一行,逐行读取文件并根据它检查每一行,然后重建数组。),但我会更感激有经验的意见。
I have this function,
rpargs () {
local i
args=()
for i in "$@"
do
test -e "$i" && args+="$(realpath --canonicalize-existing -- "$i")" || args+="$i"
done
}
Run Code Online (Sandbox Code Playgroud)
And I want to return args
. The only ways I can think of are either to printf '%s\0'
and then split it via expansion flags (0@)
, or to use a global like the code above.
是否echo -n | ...
向管道发送 EOF?IE,
echo -n | sth
Run Code Online (Sandbox Code Playgroud)
会sth
在其标准输入上收到 EOF 吗?
如何按修改日期对 zsh 数组进行排序?
files=( ~/a ~/b ~/c )
# how to sort files by date?
Run Code Online (Sandbox Code Playgroud)
PS:这是我的确切用例,(fz
几乎fzf
)
v () {
local files
files=()
command rg '^>' ~/.viminfo | cut -c3- | while read line
do
[ -f "${line/\~/$HOME}" ] && files+="$line"
done
test -f ~/.emacs.d/.cache/recentf && {
command rg --only-matching --replace '$1' '^\s*"(.*)"$' ~/.emacs.d/.cache/recentf | while read line
do
[ -f "$line" ] && files+="$line"
done
}
files="$(<<<"${(F)files}" fz --print0 --query "$*")" || return 1
files="${files//\~/$HOME}"
local …
Run Code Online (Sandbox Code Playgroud) --link
和 和有什么区别--reflink=always
?
我使用以下命令作为mv
替代,我想知道使用是否--reflink
是更好的选择。
command gcp -r --link --archive --verbose "${opts[@]}" "$@"
# delete the sources manually
Run Code Online (Sandbox Code Playgroud)