简体   繁体   English

bash-如何将换行符传递给脚本?

[英]bash - How to pass a line feed to a script?

Here is a simple script called command.sh : 这是一个简单的脚本,称为command.sh

#!/bin/bash

echo "I received: |$1|"

When I call it with a line feed, it doesn't output it: 当我用换行符调用它时,它不会输出:

$ ./command.sh foo\
> bar
I received: |foobar|

Why does the line feed get lost? 为什么换行会丢失?

Call your script as: 调用脚本为:

./command.sh 'foo
> bar'

By placing \\ before newline you're merely breaking current command line and not really passing newline character to your script. 通过将\\放在换行符之前,您只是在破坏当前命令行,而没有真正将换行符传递给脚本。

If you want to do it in single line then use: 如果要单行执行,请使用:

./command.sh $'foo\nbar'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM