我在这个脚本中放了两个看起来与我几乎相同的printf命令。第一个命令是将输出打印到文本文件中。第二个命令应该对另一个文本文件执行相同的操作,但它会打印到标准输出,然后输出一些错误。我不记得两者之间的区别
这是我正在使用的脚本
printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" "test1" \
"test2" \
"test3" \
"test4" \
"test5" \
"test6" \
"test7" \
"test8" \
"test9" > testfile.txt
printf "%s\n%s\n%s\n%s\n%s\n" "testa" \
"testb" \
"testc" \
"testd" \
"teste" > testfile2.txt
这是输出
testa
./script.txt: line 12: testb: command not found
./script.txt: line 14: testc: command not found
testfile.txt有这个
test1
test2
test3
test4
test5
test6
test7
test8
test9
testfile2.txt什么都没有
答案 0 :(得分:4)
shell延续字符\
应该始终是换行符之前的最后一个字符。如果你有尾随空格,它们会使反斜杠的效果无效,而下一行被shell视为一个独立的命令。