gpt4 book ai didi

linux - 获取运行目录名的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:20 25 4
gpt4 key购买 nike

我无法理解 bash 中的以下代码。

set `pwd` ; mfix=$1

它实际上获取了运行目录名称。但我不知道它是如何工作的。set命令是什么意思?

最佳答案

来自doc对于集合:

This builtin is so complicated that it deserves its own section. set allows you to change the values of shell options and set the positional parameters, or to display the names and values of shell variables.

例如

set v1 v2 v3 ; echo $1

将打印

v1

反引号内的命令称为“命令替换”。来自docs :

Bash performs the expansion by executing command and replacing the command substitution with the standard output of the command, with any trailing newlines deleted.

在您的示例中,它将第一个位置参数$1设置为反引号内命令执行结果的值。 (称为命令替换)。命令是 pwd 显示当前工作目录。

无论如何,如果目录路径包含空格,$1 将只获取路径的第一部分。例如

$ pwd
/some/path with/space
$ set `pwd`
$ echo $1
/some/path
$echo $2
with/space

最后,以上都是奇怪的设计,因为你可以简单地:

mfix=$(pwd)   #old school:  mfix=`pwd`

最好使用 $(command) 而不是反引号。

关于linux - 获取运行目录名的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25637465/

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