Tor 启动器命令分析

Tor 启动器命令分析

我是一个对脚本非常感兴趣的初学者,现在我只是好奇什么执行以下命令的每个部分(来自 Tor 启动器)

sh -c '"/home/user/tor-browser_en-US/Browser/start-tor-browser" --detach || ([ !  -x "/home/user/tor-browser_en-US/Browser/start-tor-browser" ] && "$(dirname "$*")"/Browser/start-tor-browser --detach)' dummy %k

我在这里找到:https://askubuntu.com/questions/831847/what-is-the-sh-c-command那:

sh将该程序sh称为解释器,并且该-c标志表示按照该程序的解释执行以下命令。”

然后有一个脚本路径start-tor-browser,并且--detach(如果我理解正确的话)只是将 Tor 浏览器进程与终端分离。

我在这里找到了一些信息--detachhttps://superuser.com/questions/178587/how-do-i-detach-a-process-from-terminal-entirely

据我所知,这-x意味着“使其可执行”,&&意味着“还执行另一个命令”,也许!意味着“强制它?”。

dummy %k那么最后有没有表示指向当前目录(或文件)的符号链接?

我不明白为什么有双引号:' ",这个奇怪的||双括号([和这个"$(dirname "$*")

如果您更好地理解这段代码,请告诉我:)。

谢谢你!

答案1

您正确地描述了命令第一部分的工作原理。我会尝试回答你的一些问题。 ||是逻辑或,因此命令行的其余部分将在新的中执行子外壳(这就是(...)意思)仅当第一个命令以状态 >0 退出时即失败。

[ ! -x file ] 检查文件是否是不是(!表示否定)可执行(或不存在)。

&&是逻辑 AND,因此如果该条件为真(主目录中没有 exec 文件)命令行执行将继续。

https://www.gnu.org/software/bash/manual/bash.html

相关内容