如何在命令执行前自动将字符添加到用户输入中

如何在命令执行前自动将字符添加到用户输入中

我喜欢在终端上阅读 - 它能集中我的注意力,让我阅读的内容是以前在浏览器等设备上阅读的两倍。

我使用 bash.bashrc 的别名编写了一个脚本,将工作目录更改为存储 .html 文件的目录,并显示该目录的内容:

alias la='ls -a'

alias books='
printf "\nA twilit bookshelf, somewhere\n\n"
cd data/data/com.termux/files/home/documents/books && la
printf "\n"'

最后,我想'lynx '在提示后添加,这样我就可以输入文件名并在 lynx 中读取它。

我想到了以下的演示:

A twilit bookself, somewhere

.        kinglear.html
..       invisiblecities.html

admin@lib:/$ lynx [filename here]

如何在提示后添加“lynx”?

谢谢你!

答案1

我将对我编写的快速 bash 脚本进行一步一步的说明。

cd ~/.local/bin
cat > searchlynx
(or use nano,vi,gedit or whatever you prefer)

使用 ctrl + shift + v 粘贴以下脚本

#!/bin/bash
printf "\nA twilit bookshelf, somewhere\n\n"
cd /home/a/Downloads && ls -a
printf '\n'
echo 'Input filename:'
read -e FileName
FileFindTest="$(find ~/Downloads/"$FileName")"  ## quoted
echo "$FileFindTest"
echo 'Open with what program?'
read command
$command $FileName

然后按 Enter 键,并使用 ctrl + c 退出。然后您需要更改该文件的权限。

chmod u+x searchlynx

用法:

searchlynx

目录将被列出,制表符自动完成功能适用于文件夹中的文件。选择要打开的文件后,您必须手动输入 lynx、xdg-open 或其他任何内容。我累了,我想最后一部分(要运行的程序的制表符完成)可以留给你作为练习,直到我有更多时间。(希望您通过查看我现在为您所做的内容来学习如何做到这一点:)我有兴趣帮助您解决问题,但可能要过一周或更长时间我才有时间再次查看它。

如果这对您来说足够好,请接受我的回答。
这至少会激励我帮助您解决程序名称制表符补全的最后一个问题。

参考: 我可以在 Bash 脚本中实现 Tab 自动完成吗?

相关内容