我想创建一个类似于mongo
,node
,redis-cli
,mysql
等编程解释器的bash脚本。
我希望能够使用像test
这样的命令,它的行为与上面的例子类似。
thomas@workstation:~$ test
>
如何制作一个像这样的命令?这叫什么?
我希望能够获取内容并将其转换为变量。
thomas@workstation:~$ test
> hello world
hello world
thomas@workstation:~$
我只想在输入后按一个“条目”一旦我希望能够在代码中处理字符串“hello world”,就像回显一样。
这叫什么?如何使用BASH制作一个?
答案 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
的一个很好的例子。