从用户读取多个条目以创建文件

时间:2017-05-17 13:43:22

标签: shell unix while-loop text-processing

我正在尝试创建一个手动创建的文件,通过打开一个vi编辑器然后Esc + i然后你粘贴一列条目然后Esc:wq !,我不希望用户甚至打开vi编辑器,脚本应该输入数据列表,它应该创建文件并添加条目。

count=1
read total
while [ "$count" -le "$total" ]; do read -p Name  ; echo $Name > /tmp/cl; count=$(($count + 1)); done

但它不起作用,因为当我在第一个“名称”提示符下粘贴输出时,在每个输入之后不希望输入Enter,而且我甚至不想输入名称的总数。< / p>

2 个答案:

答案 0 :(得分:0)

您可以使用以下内容直接将输出粘贴到文件中,而不是编写脚本:

    cat > filename 
    Right Click 

    Ctlr+C

答案 1 :(得分:0)

在运行之前创建一个rm行来清除文件内容可能不需要它。 由于你没有提到shell变种,我更喜欢在这种情况下使用sh。

您的脚本可能会使用&gt;运营商注意&gt;&gt; 。 &GT;清除文件并将文本放入其中。然后在下一个循环中再次清除并再次输入变量内容。

我使用而不是因为它更快地抢劫,而且代码更小。

return Response.status(200).entity(array.toString()).build();

然后这是您要查找的那个,当您输入空行而不将空行添加到文件末尾时将退出。只需复制粘贴并按一次或两次输入取决于输入。不幸的是,如果你复制粘贴内容,其中两个部分用空行分隔,那么它也会在那里退出。

#!/bin/sh

read -p "Total: " total    # Input for loop cycle count
rm ./temp.txt               # delete old file before run
for (( i=1 ; i <= $total ; i++ ))
do
    read -p "Name: " Name       # get name
        echo $Name >> ./temp.txt   # put it into file named temp.txt
done