Bash printf的参数被作为单独的命令读取,尽管最后有一个反斜杠
我在这个脚本中放了两个printf命令,这两个命令似乎与我最为相同。第一个命令是按原样将输出打印到文本文件。第二个命令应该对另一个文本文件执行相同的操作,但它会打印到标准输出,然后打印一些错误。我看不出两者之间的区别 这是我正在使用的脚本Bash printf的参数被作为单独的命令读取,尽管最后有一个反斜杠,bash,syntax,printf,Bash,Syntax,Printf,我在这个脚本中放了两个printf命令,这两个命令似乎与我最为相同。第一个命令是按原样将输出打印到文本文件。第二个命令应该对另一个文本文件执行相同的操作,但它会打印到标准输出,然后打印一些错误。我看不出两者之间的区别 这是我正在使用的脚本 printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" "test1" \ "test2" \ "test3" \ "te
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没有任何内容shell延续字符
\
应始终是换行符之前的最后一个字符。如果您有尾随空格,它们将使反斜杠的效果无效,并且shell将下一行视为独立命令。shell延续字符\
应始终是换行前的最后一个字符。如果有尾随空格,它们将使反斜杠的效果无效,并且shell将下一行作为独立命令处理。反斜杠后是否有空格?如果您正在使用vi,请尝试:set list
查看空白。是!谢谢@使用行连续体的CodeForester是脆弱的。请改用heredoc。反斜杠后面有空格吗?如果您正在使用vi,请尝试:set list
查看空白。是!谢谢@使用行连续体的CodeForester是脆弱的。请改用heredoc。