Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash printf的参数被作为单独的命令读取,尽管最后有一个反斜杠_Bash_Syntax_Printf - Fatal编程技术网

Bash 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命令,这两个命令似乎与我最为相同。第一个命令是按原样将输出打印到文本文件。第二个命令应该对另一个文本文件执行相同的操作,但它会打印到标准输出,然后打印一些错误。我看不出两者之间的区别

这是我正在使用的脚本

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。