如何在一个简单的bash文件中从命令行获取输入?

时间:2014-04-24 09:46:38

标签: bash shell

我认为这是我见过的最严重的错误。我写过我在这里看到的内容:

Example of script但我不断得到错误。我的计划是看看read命令是如何工作的。但在我的代码或终端中似乎是一个狡猾的错误。我想知道是否有人见过类似的问题?

#!/usr/bin/bash
echo "Plz enter"
read  text
echo "You entered $text"
echo $text
echo "$text"

错误:

$ . test.sh 
Plz enter
b
': not a valid identifier
You entered 


$ 

3 个答案:

答案 0 :(得分:2)

您的输入文件包含CR + LF line endings

删除那些,脚本应该运行良好。您可以使用dos2unix或任何其他实用程序删除CR。

答案 1 :(得分:2)

是的我在使用cygwin的windows中遇到了同样的错误,我修复了它将行格式的结尾从windows格式更改为unix格式。

您还可以使用Notepad++: Edit > EOL Conversion > UNIX转换行尾格式,然后保存并运行该文件。

答案 2 :(得分:0)

我认为,尝试更改shell路径,如下所示!

root@sathish:/tmp# vim test.sh

#!/usr/bin/bash
echo "Plz enter"
read  text
echo "You entered $text"
echo $text
echo "$text"

root@sathish:/tmp# chmod +x test.sh 
root@sathish:/tmp# ./test.sh 
-bash: ./test.sh: /usr/bin/bash: bad interpreter: No such file or directory

root@sathish:/tmp# which bash
/bin/bash

root@sathish:/tmp# ls /usr/bin/bash
ls: cannot access /usr/bin/bash: No such file or directory

root@sathish:/tmp# vim test.sh 

#!/bin/bash
echo "Plz enter"
read  text
echo "You entered $text"
echo $text
echo "$text"

root@sathish:/tmp# ./test.sh 
Plz enter
a
You entered a
a
a