用于从用户读取内容的脚本

时间:2015-05-29 23:18:07

标签: bash shell scripting

如何编写创建文件的shell脚本

    echo "Enter the file you want to create"
    read a
    touch $a

并将内容添加到创建的文件' a'

echo "Enter the contents to your $a file:"
cat > $a << 'EOF'
EOF

上面的方法不正确,我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

你快到了。这将按照您的要求进行:

echo "Enter the file you want to create"
read a
echo "Enter the contents to your $a file (press ctrl-D when done):"
cat >"$a"

讨论

touch $a

无需触摸文件。 cat语句无论如何都会创建它。

另外,因为文件名可以包含空格,所以最好在双引号内放入包含文件名的任何shell变量。这可以防止分词。

cat > $a << 'EOF'
EOF

构造<< 'EOF'告诉shell从 here document 中读取。如果您希望将shell脚本中的文本用作输入,则可以使用此选项。你没有。您希望改为读取用户的输入。因此,上述两行可以简单地替换为cat >"$a"

答案 1 :(得分:1)

然后你可以问一个简单的回声:

echo "Enter the file you want to create"
read file
echo "Enter the contents to your $a file:"
read content

echo "$content" > "$file"