Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 类似于$1的东西,但收集所有输入,不考虑空格_Unix_Variables_Command Line_Terminal - Fatal编程技术网

Unix 类似于$1的东西,但收集所有输入,不考虑空格

Unix 类似于$1的东西,但收集所有输入,不考虑空格,unix,variables,command-line,terminal,Unix,Variables,Command Line,Terminal,是否有类似于$1的东西,但它收集来自终端输入的所有输入,包括空格字符?这将用于收集可能有空格的粘贴目录路径-我需要整个字符串 提前谢谢 谢天谢地,我已经收到了第一个问题的答案。然而,在执行过程中,我无法让它发挥作用。这是我的密码。谁能解释我做错了什么?谢谢 alias finder='cd $* && open .' 它返回分段返回-每次它碰到空格时,它都将其视为一个单独的条目。试试看 $*所有位置参数,视为单个单词 $@与$*相同,但每个参数都是带引号的字符串,即 参数被完整

是否有类似于$1的东西,但它收集来自终端输入的所有输入,包括空格字符?这将用于收集可能有空格的粘贴目录路径-我需要整个字符串

提前谢谢

谢天谢地,我已经收到了第一个问题的答案。然而,在执行过程中,我无法让它发挥作用。这是我的密码。谁能解释我做错了什么?谢谢

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
最后一个是最近的一个,但它增加了额外的引导空间


我想你最好只引用目录名。

那我就这么做。谢谢你的回复。