Unix 类似于$1的东西,但收集所有输入,不考虑空格
是否有类似于$1的东西,但它收集来自终端输入的所有输入,包括空格字符?这将用于收集可能有空格的粘贴目录路径-我需要整个字符串 提前谢谢 谢天谢地,我已经收到了第一个问题的答案。然而,在执行过程中,我无法让它发挥作用。这是我的密码。谁能解释我做错了什么?谢谢Unix 类似于$1的东西,但收集所有输入,不考虑空格,unix,variables,command-line,terminal,Unix,Variables,Command Line,Terminal,是否有类似于$1的东西,但它收集来自终端输入的所有输入,包括空格字符?这将用于收集可能有空格的粘贴目录路径-我需要整个字符串 提前谢谢 谢天谢地,我已经收到了第一个问题的答案。然而,在执行过程中,我无法让它发挥作用。这是我的密码。谁能解释我做错了什么?谢谢 alias finder='cd $* && open .' 它返回分段返回-每次它碰到空格时,它都将其视为一个单独的条目。试试看 $*所有位置参数,视为单个单词 $@与$*相同,但每个参数都是带引号的字符串,即 参数被完整
alias finder='cd $* && open .'
它返回分段返回-每次它碰到空格时,它都将其视为一个单独的条目。试试看
$*
所有位置参数,视为单个单词
$@
与$*
相同,但每个参数都是带引号的字符串,即
参数被完整地传递,没有解释或扩展
通常,您只需将第一个参数称为
“$1”
,包括引号。如果要使用目录名作为参数,且名称中有空格,通常应在命令行中引用该名称:
alias finder='cd "$1" && open .'
...
finder "/some/dir/with spaces/in its name"
这也适用于制表符完成,它可以为您避免空白。在这种情况下,您可能还可以直接使用open
命令
但是如果您想让查找器
别名将多个参数连接到一个字符串中,并用空格分隔,那么实际情况就更难了。我尝试了使用$*
和$@
的一些可能性,但它们不能正常工作。为了进行测试,我使用自己的命令echol
,它在单独的一行上打印每个参数
$ echol foo bar
foo
bar
$ alias e='echol "$*"'
$ e foo bar
foo
bar
$ alias e='eval echo \""$*"\"'
$ e foo bar
foo bar
最后一个是最近的一个,但它增加了额外的引导空间
我想你最好只引用目录名。那我就这么做。谢谢你的回复。