Bash 如何在别名定义中写入换行符?
在我的~/.bash_别名文件中 有:msr='sed:a;N、 美元!文学士;s/\n/\/home/\/there\n/g' 这是一个例子,我必须在别名中添加换行符。我怎样才能做到 我得到的错误如下: 意外标记换行符附近出现语法错误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' "$@" } 通常没有理由选择别名而不是函数。我不认为换行符是这里的特别
使用一个函数而不是别名很容易绕过这个问题,通常也会绕过一大堆类似的问题
msr () {
sed ':a;N;$!ba;s/\n/ "\/home"/" \/there"
/g' "$@"
}
通常没有理由选择别名而不是函数。我不认为换行符是这里的特别问题。您需要像这样转义sed命令:alias msr='sed'\:a;N..“\”。有一个额外的斜杠显然和使用函数的建议无关,因为alias中的sed变得丑陋。另外,是否有理由使用\n一次然后执行文字?我不确定OP想要文字换行符或文字斜杠的位置。受启发的猜测和天才的读心术更受欢迎。