gpt4 book ai didi

linux - 如何使用 bash 脚本中的变量在谷歌浏览器中运行 url

转载 作者:行者123 更新时间:2023-12-04 18:59:20 28 4
gpt4 key购买 nike

您好,我是新手,正在学习 shell 命令。当我将它作为单行命令尝试时,它可以工作,但是当我将命令和路径存储到两个变量中并调用它时,它不起作用。

google-chrome /home/bashscripts/index.html
输出:chrome 打开/home/bashscripts/index.html (作品)
我想通过变量来实现这一点:
A="google-chrome"
B="/home/bashscripts/index.html"

$C= echo $(eval $A) $B **(DOESNOT WORK)**
echo $C
输出:bash 打开 google-chrome 空白新标签,但未打开 html 文件。

最佳答案

这将起作用:

#!/bin/bash

A="google-chrome"
B="/home/bashscripts/index.html"

"$A" "$B"
但是,我建议不要将命令(如 google-chrome )存储在变量中;像这样的简单命令可以这样做,但是 tends to fail for complex commands .变量用于数据(如文件名),而不用于可执行命令。此外,使用小写或混合大小写的变量名称通常更安全,因为有一堆具有特殊含义的全大写名称,如果您不小心将其中一个用于其他用途,您可能会遇到麻烦。
脚本中的其他所有内容都不必要地复杂,而且大多数都做错了:
  • 要将某些内容存储在变量中,请使用 varname=$(command) ,而不是 $varname= command -- $= 之后的空格两者都改变​​了命令的含义,你需要 $( )捕获命令的输出。
  • 此外,您几乎不应该使用 $(echo something) , 因为 echo$( )基本上互相抵消了。
  • 而且你不应该在没有充分理由的情况下捕获命令的输出。如果您只是要打印输出(例如 echo $C ),那么只需跳过捕获它并让它直接打印。
  • 当你确实需要打印一个变量,或者在几乎任何上下文中实际使用它时,你应该在它周围加上双引号以避免奇怪的解析(例如 echo "$C" 而不是 echo $C )。
  • 不要使用 eval除非您是 shell 解析工作原理的专家。这基本上是一个奇怪的解析错误的邀请,几乎从来没有必要。

  • 最后,我建议通过 shellcheck.net 运行您的脚本。 ,因为它会指出许多常见的脚本错误。

    关于linux - 如何使用 bash 脚本中的变量在谷歌浏览器中运行 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67461945/

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