gpt4 book ai didi

linux - 将输出从一个函数重定向到另一个函数

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:20 25 4
gpt4 key购买 nike

我正在尝试根据用户输入创建一个管道,但是当我重定向输出时,我得到的输出没有换行符,它只是一个巨大的单行。以下是代码:

 42 function stack(){
43 echo $(history|tail -1|cut -d" " -f5-|cut -d "|" -f1) >> ~/commands
44 local last=$(tail -1 ~/commands)
45 echo $(eval $last) >> ~/output
46 }

是否有更好的方法将输出通过管道传输到文件? Echo 似乎破坏了输出。

最佳答案

我不确定是否理解剪切的目的,但 $() 周围缺少引号,因此输出被 IFS 拆分为单词

echo "$(eval "$last")"

对于位数不等于 3 的历史条目,cut -c8- 可能比 cut -d""-f5- 更安全。

还有cut -d"|"如果将 | 用作文字,例如 echo '|',-f1 可能会失败。

也许你可以看看 bash 手册中的偶数指示符:在交互式 bash 中,以下命令将运行最后一个命令

$ !-1

关于linux - 将输出从一个函数重定向到另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43932857/

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