小编Hap*_*ays的帖子

使用 bash 脚本运行交互式程序

这对我来说是 bash 的第一天。也许这个问题已经被问到了,但我试过谷歌,结果是空的。也许是因为我不知道如何表达我的问题。

我有一个自定义/内部 linux 程序,它会向最终用户提出一堆问题……并最终使用这些问题来设置一些服务器。现在我想自动执行此操作,以便 bash 脚本调用 bin 文件并提供静态答案。理想情况下,我想按照询问的顺序将答案保存在文件中,然后将其提供给程序。

现在,我一直在研究读取文件的示例脚本。但是我找不到结合使用文件输入和为程序提供答案的示例。

任何指针将不胜感激。

编辑 1

我尝试执行以下操作:

#!/bin/bash
echo "This script is about to call mytestapp"
mytestapp
printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n
~
Run Code Online (Sandbox Code Playgroud)

当我运行它时,“mytestapp”程序启动,但它位于第一个问题处,等待如下输入:

dev1:~# sh /tmp/test_wrapper.sh 
This script is about to call mytestapp
Enter the 3-letter location code (e.g. usa):
Run Code Online (Sandbox Code Playgroud)

脚本中的 printf 语句永远不会启动。

编辑 2

我发现了我的错误。需要将参数通过管道传输到应用程序中:

 printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n' | mytestapp
Run Code Online (Sandbox Code Playgroud)

bash shell-script

5
推荐指数
1
解决办法
7166
查看次数

在vim中搜索和替换数字

我有一个 sql 转储文件,其中包含这样的条目:

INSERT INTO "widgets" VALUES(152,'12477','abc@gmail.com','smtp','Jerry Jo',0);
INSERT INTO "widgets" VALUES(153,'12477','36542','sip','Jerry Jo',0);
INSERT INTO "widgets" VALUES(158,'92865','me@gmail.com','smtp','Jane Jo',0);
Run Code Online (Sandbox Code Playgroud)

我想用“VALUES(DEFAULT”)搜索和替换“VALUES(XXX,”,当前跟在单词值后面的数字最多可以有5位数字。

到目前为止,我一直在使用以下类似的命令:

 :%s/\<(VALUES(\d+\>,/VALUES(DEFAULT,/g
Run Code Online (Sandbox Code Playgroud)

但我似乎无法正确理解。任何建议,将不胜感激。

vim regular-expression

2
推荐指数
1
解决办法
3491
查看次数

标签 统计

bash ×1

regular-expression ×1

shell-script ×1

vim ×1