Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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 如何在别名定义中写入换行符?_Bash_Ubuntu_Alias - Fatal编程技术网

Bash 如何在别名定义中写入换行符?

Bash 如何在别名定义中写入换行符?,bash,ubuntu,alias,Bash,Ubuntu,Alias,在我的~/.bash_别名文件中 有:msr='sed:a;N、 美元!文学士;s/\n/\/home/\/there\n/g' 这是一个例子,我必须在别名中添加换行符。我怎样才能做到 我得到的错误如下: 意外标记换行符附近出现语法错误 使用一个函数而不是别名很容易绕过这个问题,通常也会绕过一大堆类似的问题 msr () { sed ':a;N;$!ba;s/\n/ "\/home"/" \/there" /g' "$@" } 通常没有理由选择别名而不是函数。我不认为换行符是这里的特别

在我的~/.bash_别名文件中 有:msr='sed:a;N、 美元!文学士;s/\n/\/home/\/there\n/g'

这是一个例子,我必须在别名中添加换行符。我怎样才能做到

我得到的错误如下:

意外标记换行符附近出现语法错误


使用一个函数而不是别名很容易绕过这个问题,通常也会绕过一大堆类似的问题

msr () {
    sed ':a;N;$!ba;s/\n/ "\/home"/" \/there"
/g' "$@"
}

通常没有理由选择别名而不是函数。

我不认为换行符是这里的特别问题。您需要像这样转义sed命令:alias msr='sed'\:a;N..“\”。有一个额外的斜杠显然和使用函数的建议无关,因为alias中的sed变得丑陋。另外,是否有理由使用\n一次然后执行文字?我不确定OP想要文字换行符或文字斜杠的位置。受启发的猜测和天才的读心术更受欢迎。