如何从shell脚本中的任何控制台接受用户inpus?

时间:2016-08-30 10:41:39

标签: shell daemon

我有这段代码

test.sh =>

#!/bin/bash
echo "i am running......."
while true  
        do
        echo "you typed  -----  $1" 
done

我只想要输入test hello的地方,它应该打印you typed ----- hello

例如: 的控制台-1

vagrant@dummy:~$ sh test.sh
i am running.......

控制台-2

vagrant@dummy:~$ test hello
you typed  -----  hello
像它应该像守护进程一样运行,我应该从任何地方调用它。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

你可以尝试

#!/bin/bash

# read will return true as long as it reads the "delimiter" 
while read -p "Please enter something: "
do
    if [[ $REPLY == "stop" ]]
    then
        # break exits the "while" loop
        break
    else
        printf "%s\n" "you entered $REPLY"
    fi
done

答案 1 :(得分:0)

您的代码看起来可以作为输出。

能够从任何地方运行它 -

  • test.sh
  • 将脚本重命名为测试
  • 将脚本放在$ PATH变量中包含的位置。

例如,

$ echo $PATH
/bin:/usr/bin:/etc:/usr/sbin 

您可以将脚本放在上述某个目录中,也可以将PATH设置为包含更多位置,在.profile或.bash_profile中导出PATH时,每次登录时都会自动导出。

在〜/ .profile -

中添加
export PATH=$PATH:/dir/to/script

将脚本放在/ dir / to / script中。现在每次登录时,PATH都会像 -

$ echo $PATH
/bin:/usr/bin:/etc:/usr/sbin:/script/to/dir

现在,您可以从任何地方运行脚本 -

$ test hello