我想在 git 别名内的 printf 的第二个参数中为函数提供一个带空格的参数。
git config --global alias.foo '!a="C:\New folder"; printf "%s\n" "$(basename $a)"'
git config --global alias.foo '!a="C:\New folder"; printf "%s\n" "$(basename \"$a\")"'
git config --global alias.foo '!a="C:\New folder"; printf "%s\n" "$(basename "\""$a"\"")"'
git config --global alias.foo '!a="C:\New folder"; b=$(basename "$a"); printf "%s\n" "$b"'
前三个产量
New
。最后一个避免了这个问题并按预期产生 New folder
。如何在不使用附加变量的情况下编写别名?
我会做什么:
git config --global alias.foo '!a="C:\New folder"; printf "%s\n" "\042$(basename $a)\042"'
参见
man ascii
中的八进制部分
不要转义
$a
周围的双引号。
git config --global alias.foo '!a="C:\New folder"; printf "%s\n" "$(basename "$a")"'