创建接受输入的bash脚本

时间:2012-12-14 20:42:48

标签: linux bash unix command-line terminal

我想创建一个类似于mongonoderedis-climysql等编程解释器的bash脚本。

我希望能够使用像test这样的命令,它的行为与上面的例子类似。

thomas@workstation:~$ test
> 

如何制作一个像这样的命令?这叫什么?

我希望能够获取内容并将其转换为变量。

thomas@workstation:~$ test
> hello world
hello world 
thomas@workstation:~$

我只想在输入后按一个“条目”一旦我希望能够在代码中处理字符串“hello world”,就像回显一样。

这叫什么?如何使用BASH制作一个?

5 个答案:

答案 0 :(得分:2)

我觉得“读”是你要找的,不是吗?

这是一个包含一些示例的链接:http://bash.cyberciti.biz/guide/Getting_User_Input_Via_Keyboard

所以你可以做这样的事情:

read -p "Enter your name : " name
echo "Hi, $name. Let us be friends!"

答案 1 :(得分:1)

我很抱歉这不能直接回答你,但是对于像这样的任务来说,使用Python,Ruby或Perl等功能更强大的编程语言可能是值得的。在Python中,您可以使用raw_input()函数。

user_command = raw_input('> ')

会产生你的提示。

答案 2 :(得分:1)

首先,不要为脚本test命名。这产生了太多的混乱。无论你怎么称呼它,你都可以做很多事情:

#!/bin/sh
printf '> '
read line
echo "$line"

如果你的shell支持它:

#!/bin/sh
read -p '> ' line
echo "$line"

#!/bin/sh
printf '> '
sed 1q    # This will print the input.  To store in in a variable: a=$( sed 1q )

答案 3 :(得分:0)

[spatel@tux ~]$ read a
Hello World!!!!!
[spatel@tux ~]$ echo $a
Hello World!!!!!

答案 4 :(得分:0)

这里可能有用的关键词是REPL(Read-eval-print loop),主要用于编程语言或编码环境。您的浏览器控制台是REPL的一个很好的例子。

Node allows you use their REPL to build interactive apps.