~ $ echo \
hello
hello
~ $ history | head -1
echo \
不支持换行。
~ $ echo \
hello
hello
~ $ history --null | ghead --lines=1 --zero-terminated
echo \
hello
依赖 GNU Coreutils。大家知不知道有没有别的方案?用标准的工具,AWK/Sed/Perl 之类的。
~ $ echo \
hello
hello
~ $ history | head -1
echo \
不支持换行。
~ $ echo \
hello
hello
~ $ history --null | ghead --lines=1 --zero-terminated
echo \
hello
依赖 GNU Coreutils。大家知不知道有没有别的方案?用标准的工具,AWK/Sed/Perl 之类的。
⋊> echo \
hello \
world
hello world
⋊> history --null -1 | xargs -0
echo \
hello \
world
history | tail -n 2 | head -n 1
echo $history[1]
我用的就是 fish,难道最近改了?
⋊> fish --version
fish, version 2.7.1-645-g0a4883a6
⋊> man history | xargs -0 | head -1
history(1) fish history(1)
-1
是 --max=1
的简写:
⋊> history --help | ag '\-\-max'
history search [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] [ --max=n ] [ --null ] [ -R | --reverse ] [ 'search string'... ]
· -<number> -n <number> or --max=<number> limits the matched history
另外,如果只用 -1
,会进入交互模式,所以需要 | xargs -0
。
的确可以。文档没有提到有 history
这个变量,这对新手不友好。
我用的是 fish 2.7.1,又看了下 manpage,的确支持 -1
,但是似乎没什么用,因为只能用于搜索。
o -<number> -n <number> or --max=<number> limits the matched history items to the first 'n'
matching entries. This is only valid for history search.
⋊> history --null -1 | xargs -0 # 整个历史的最后一条
⋊> history search 'foo' --null -1 | xargs -0 # 搜索结果的最后一条