gpt4 book ai didi

linux - 'less' 'which' 的输出指定的文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:46 24 4
gpt4 key购买 nike

命令“which”显示命令的链接。命令“less”打开文件。

如何将文件“减少”为“which”的输出?我不想使用如下两个命令来执行此操作。

=>which script
/file/to/script/fiel
=>less /file/to/script/fiel

最佳答案

这是 command substitution 的一个用例:

less -- "$(which commandname)"

也就是说,如果您的 shell 是 bash,请考虑使用 type -P 代替,它(与外部命令 which 不同)内置于 shell 中:

less -- "$(type -P commandname)"

注意引号:这些对于可靠运行很重要。如果没有它们,如果文件名包含 IFS 内的字符(默认情况下为空格)或者可以作为 glob 表达式进行计算,则该命令可能无法正常工作。

双破折号同样是为了正确性:它们后面的任何参数都被视为位置参数(根据 POSIX Utility Syntax Guidelines ),因此即使返回以破折号开头的文件名(无论这可能不太可能),它也确保 less 将其视为文件名而不是一系列选项或标志的开头。

<小时/>

您可能还希望考虑通过环境变量 $PAGER 尊重用户的寻呼机选择,并使用不带 -Ptype 来查找别名、shell 函数和内置函数:

cmdsource() {
local sourcefile
if sourcefile="$(type -P -- "$1")"; then
"${PAGER:-less}" -- "$sourcefile"
else
echo "Unable to find source for $1" >&2
echo "...checking for a shell builtin:" >&2
type -- "$1"
fi
}

这定义了一个可以运行的函数:

cmdsource commandname

关于linux - 'less' 'which' 的输出指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31999334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com