您好,我有一个程序,如果用户输入我从文件中读取的文件名,否则我会提示他们输入。
目前我在做:
input=$(cat)
echo $input>stdinput.txt
file=stdinput.txt
这个问题是它不读取输入中的换行符,例如如果我输入
s,5,8
kyle,5,34,2
j,2
输出
s,5,8 k,5,34,2 j,2
要存储在文件中的预期输出是
s,5,8
kyle,5,34,2
j,2
我需要知道如何在阅读时包含换行符。?
最佳答案
echo
将抑制换行符。您不需要额外的 $input
变量,因为您可以直接将 cat
的输出重定向到文件:
file=stdinput.txt
cat > "$file"
另外,在 cat
之前定义 $file
对我来说更有意义。已经改变了这一点。
如果您需要用户在文件和 $input
中输入,那么 tee
就足够了。如果将 cat
(用户输入)的输出通过管道传输到 tee
,则输入将同时写入文件和 $input
:
file=stdinput.txt
input=$(cat | tee "$file")
关于linux - 在 Shell 中读取多行用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19736428/