创建以单引号结尾的 bash 别名
Creating a bash alias that ends in single quotation
我有一个命令行字符串:
ls | sed -e 's/^/"/g' -e 's/$/"/g' | tr '\n' ' '
在单行中输出当前文件夹中的文件名,并用引号括起来。
我试图将其添加到我的 .bash_profile 作为别名,但我认为单引号引起了问题,我无法将其添加到工作。
我试过了,但没有成功:
alias='ls | sed -e 's/^/"/g' -e 's/$/"/g' | tr '\n' ' ''
如何为上述内容创建别名?
提前感谢任何可以帮助解决这个菜鸟问题的人,非常感谢您抽出时间:)
干杯,
斯蒂芬。
在这里使用 \"
工作
alias X="ls | sed -e 's/^/\"/g' -e 's/$/\"/g' | tr '\n' ' '"
将整个命令用双引号引起来,命令中的双引号用反斜杠转义:
alias a="ls | sed -e 's/^/\"/g' -e 's/$/\"/g' | tr '\n' ' '"
或使用函数
a() {
ls | sed -e 's/^/"/g' -e 's/$/"/g' | tr '\n' ' '
}
顺便说一下:解析 ls
是一种不好的做法。使用 glob 和 printf
:
会更安全、更容易
printf '"%s" ' *
或者,如果您想正确地引用eval
或类似的参数
printf '%q ' *
别名应该将命令行括在 '
中,并且每个已经存在的 '
应该使用 '\''
进行转义
试试这个:
alias lsquoted='ls | sed -e '\''s/^/"/g'\'' -e '\''s/$/"/g'\'' | tr '\''\n'\'' '\'' '\'''
我有一个命令行字符串:
ls | sed -e 's/^/"/g' -e 's/$/"/g' | tr '\n' ' '
在单行中输出当前文件夹中的文件名,并用引号括起来。
我试图将其添加到我的 .bash_profile 作为别名,但我认为单引号引起了问题,我无法将其添加到工作。
我试过了,但没有成功:
alias='ls | sed -e 's/^/"/g' -e 's/$/"/g' | tr '\n' ' ''
如何为上述内容创建别名?
提前感谢任何可以帮助解决这个菜鸟问题的人,非常感谢您抽出时间:)
干杯,
斯蒂芬。
在这里使用 \"
工作alias X="ls | sed -e 's/^/\"/g' -e 's/$/\"/g' | tr '\n' ' '"
将整个命令用双引号引起来,命令中的双引号用反斜杠转义:
alias a="ls | sed -e 's/^/\"/g' -e 's/$/\"/g' | tr '\n' ' '"
或使用函数
a() {
ls | sed -e 's/^/"/g' -e 's/$/"/g' | tr '\n' ' '
}
顺便说一下:解析 ls
是一种不好的做法。使用 glob 和 printf
:
printf '"%s" ' *
或者,如果您想正确地引用eval
或类似的参数
printf '%q ' *
别名应该将命令行括在 '
中,并且每个已经存在的 '
应该使用 '\''
试试这个:
alias lsquoted='ls | sed -e '\''s/^/"/g'\'' -e '\''s/$/"/g'\'' | tr '\''\n'\'' '\'' '\'''