![如何获取 bash 脚本文件以在继续下一步之前请求提示?](https://linux22.com/image/938338/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%20bash%20%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6%E4%BB%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD%E4%B8%8B%E4%B8%80%E6%AD%A5%E4%B9%8B%E5%89%8D%E8%AF%B7%E6%B1%82%E6%8F%90%E7%A4%BA%EF%BC%9F.png)
我有一个一行脚本,用于在目录中创建文件并使用 Kwrite 打开该文件。我希望该脚本提示输入要创建的文件名并由 Kwrite 打开。目前它甚至没有打开终端,但理想情况下应该可以。如何使用以下脚本实现这一点?:
cat > file.php & kwrite file.php
我的目的是粘贴一个文件的复制部分来创建一个新文件。
答案1
选项 1:使用 bash 脚本参数
像这样创建脚本:
#!/bin/bash
( echo something > "$1".php && kwrite "$1".php ) &
clear
然后,您可以调用脚本并在命令后传递文件名。然后,脚本将自动创建具有所需内容的文件,.php
自动添加扩展名,并在 kwrite 中打开该文件,同时释放终端提示符供您输入以下命令。
$1
脚本中有一个变量,它会自动检索命令行上的下一个单词。例如,如果调用该脚本phpfile
,则命令
phpfile myfile
将创建并打开文件myfile.php
。
选项 2. 使用read
命令
该read
命令允许提示用户在命令行输入。
#!/bin/bash
echo "Please enter filename: "
read FILENAME
echo something > "$FILENAME".php && nohup kwrite "$FILENAME".php &
clear
nohup
如果您使用终端工作,则可能很有用。它将编辑器与终端进程分离,因此如果您关闭终端,它也不会关闭。
选项 3. 使用图形工具
禅意,在 Ubuntu 中默认安装,或者对话在 Plasma 桌面上,允许您在图形对话框中提示用户输入,以供脚本使用。您可以在脚本中调用这些工具。然后,用户输入将被放置在变量中。这样做的好处是,您可以将脚本分配给快捷键。然后,您只需按一下键即可调用它,弹出 Zenity 对话框并让脚本执行其工作。
#!/bin/bash
FILENAME=$(zenity --entry --title "Name request" --text "Please enter file name:")
echo something > "$FILENAME".php && nohup kwrite "$FILENAME".php &
clear