gpt4 book ai didi

bash - 错误使用反引号执行?

转载 作者:行者123 更新时间:2023-12-04 06:41:38 26 4
gpt4 key购买 nike

我试图通过从文本文件中读取命令来运行命令,但它失败了。当我输入完全相同的行时,它正在工作,很难。我很惊讶它甚至尝试执行移动命令,但收到一条错误消息,转换为“找不到文件或目录”。显然,错误消息在这里没有说实话。有人可以解释一下吗?

s39339@compute:~/spr/man/de$ head -n7 mkdoc|tail -n1
mv nutzer.1.gz ~/public_html/man/man1/
s39339@compute:~/spr/man/de$ `head -n7 mkdoc|tail -n1`
mv: Verschieben von „nutzer.1.gz“ nach „~/public_html/man/man1/“ nicht möglich: Datei oder Verzeichnis nicht gefunden
s39339@compute:~/spr/man/de$ ls
gzip mkdoc nutzer.1 nutzer.1.gz nutzer.pod rbsh
s39339@compute:~/spr/man/de$ mv nutzer.1.gz ~/public_html/man/man1/
s39339@compute:~/spr/man/de$

我正在为学校做这件事,所以答案会很好。我们获得结果的方式并不重要,尽管我尝试的方法似乎很不安全。

最佳答案

`head -n7 mkdoc|tail -n1`替换为命令的输出,即 mv nutzer.1.gz ~/public_html/man/man1/ .这个输出然后被解释为一个命令,一个 mv命令。

但是,它失败了,因为已经执行了波浪号扩展。 ~此时未替换为您的主目录;它只是一个普通的波浪号字符。就好像你曾试图执行

'mv' 'nutzer.1.gz' '~/public_html/man/man1/'

出于同样的原因,您不能使用 $HOME ,或第二组反引号,或任何其他动态构造。为此,您需要使用 eval ,或将字符串传递给第二个 shell。
eval `head -n7 mkdoc|tail -n1`
bash -c "`head -n7 mkdoc|tail -n1`"

关于bash - 错误使用反引号执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161201/

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