小编And*_*son的帖子

UNIX `basename` 命令的奇怪行为

我想用来basename获取以换行符分隔的文件路径列表的基本名称。当 n > 2 时它似乎有效:

$ basename `echo -e '/foo/bar \n /food/baz \n /oof/rab'`
bar
baz
rab
Run Code Online (Sandbox Code Playgroud)

但是,当 n = 2 时,它只输出第一行。

$ basename `echo -e '/foo/bar \n /food/baz'`
bar
Run Code Online (Sandbox Code Playgroud)

为什么不打印baz?这是一个错误basename吗?这是我的平台信息:

$ uname -a
Darwin MacBook-Pro-4.local 15.6.0 Darwin Kernel Version 15.6.0: Sun Jun  4 21:43:07 PDT 2017; root:xnu-3248.70.3~1/RELEASE_X86_64 x86_64
Run Code Online (Sandbox Code Playgroud)

unix bash shell macos

2
推荐指数
1
解决办法
177
查看次数

标签 统计

bash ×1

macos ×1

shell ×1

unix ×1