shell 脚本无法将命令行输出保存到变量中

2024-05-07

我正在尝试执行 shell 命令,然后使用 shell 脚本将输出保存到变量中。所以我使用这样的反引号:

out=`ls -l`
print $out

该代码工作正常,我可以将它用于任何其他 shell 命令,但是当我尝试执行“python --version”来检查 python 版本时。我遇到了奇怪的问题。反引号不适用于“python --version”命令,而它与任何其他命令都可以正常工作,它将输出打印到屏幕上,并且不向变量 $out 保存任何内容。所以如果我这样做:

out =`python --version`
print "my python version is "$out

result:

Python 2.6.1
my python version is 

我也尝试使用 $() 来替换反引号,但没有成功。任何想法 ?


等号前有一个空格:

out =`python --version`

应该:

out=`python --version`

Update

python还将版本字符串输出到stderr,因此您需要将其重定向到stdout:

out=`python --version 2>&1`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell 脚本无法将命令行输出保存到变量中 的相关文章

  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • 如何在 JavaScript 中检查未定义的变量

    我想检查变量是否已定义 例如 以下内容会引发未定义的错误 alert x 我怎样才能捕获这个错误 在 JavaScript 中 null是一个对象 不存在的事物还有另一种价值 undefined DOM 返回null对于几乎所有无法在文档中
  • 如何剪切(1) 个驼峰字?

    Bash 中有没有一种简单的方法可以将驼峰式单词拆分为其组成词 例如 我想将 aCertainCamelCasedWord 拆分为 a certain Camel Cased Word 并能够选择我感兴趣的那些字段 当单词分隔符是下划线时
  • 如何将命令作为参数传递给 ssh [重复]

    这个问题在这里已经有答案了 我的需要是让这个命令起作用 sshpass p XXXX ssh oStrictHostKeyChecking no email protected cdn cgi l email protection sudo
  • 创建具有动态更新变量的数组

    我有一些 PHP 变量 它们的名称直接链接到它们包含的函数 是否有办法自动创建这些变量 以便我可以使用所有变量 00 200 这就是我现在正在做的事情 regdays00 is user reg matured 00 regdays02 i
  • 变量值更改时的 PyQt 事件

    我有一个变量 t t 0 我想在 t 值发生变化时启动一个事件 如何 没有 valuechanged connect 属性或任何变量 对于全局变量 单独使用赋值是不可能的 但对于属性来说非常简单 只需使用property https doc
  • 使用 Windows 命令行连接文本文件,删除前导行

    我需要连接一些相对较大的文本文件 并且更喜欢通过命令行来完成此操作 不幸的是我只有Windows 无法安装新软件 type file1 txt file2 txt gt out txt 允许我几乎得到我想要的 但我不希望 file2 txt
  • 如何将 bash 脚本的整个输出保存到文件

    我正在尝试将 bash 脚本的整个输出保存到文件中 我目前在代码开头有一个参数 ip 地址 如下所示 bin bash USAGE Usage 0
  • 如何使用 bash 显示具有两个子文件夹的文件夹?

    我通过 Cygwin 使用 bash 我有一个大文件夹 a 有很多子文件夹 b 这些子文件夹各有一个或两个子文件夹 c 我想找到所有有两个子文件夹 c 的子文件夹 b 并输出它们 结构如下 a b1 c1 b2 c1 c2 b3 c1 c2
  • 为什么 C# 处理命令行参数的方式不一致?

    在 C 中 直接从 Main 获取命令行参数会省略 exe 名称 这与 C 的传统相反 通过 Environment GetCommandLineArgs 获取相同的命令行参数包括它 对于这种明显的不一致 我是否缺少一些合理的逻辑原因 cl
  • 在 Swift 中将动态 Int 变量从一个类传递到另一个类

    我是 swift 2 的新手 我陷入了将变量从一个类传递到另一个类的过程中 我有一个类 GameScene 我有一个公共变量score并且在更新功能中不断更新 我想发送score两个节点相互碰撞时的值 一旦它发生碰撞 我就会使用 mainv
  • 如何将设备屏幕位置转换为发送事件位置?

    我知道关于input tap x yshell 命令 但是 我想了解如何 使用执行单击sendevent命令 我能够通过以下命令实现它 sendevent dev input event5 3 53 X sendevent dev inpu
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • 在shell命令行中创建mysql触发器

    我需要在命令行中创建一个mysql触发器 这个sql在mysql控制台中运行良好 sql USE DB1 DROP TRIGGER IF EXISTS my trigger DELIMITER CREATE TRIGGER my trigg
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 在Java中使用命令行编译多个包

    您好 我一直在使用 IDE 但现在我需要从命令行运行和编译 问题是我有多个软件包 我试图找到答案 但没有任何效果 所以我有 src Support java files Me java files Wrapers java files 你知
  • 远程 Informix 11.5 命令行客户端

    Informix 11 5 是否附带了与 SQL Server 的 SQLCMD 类似的命令行工具 如果是 如何连接到远程服务器并使用它执行常规 SELECT INSERT UPDATE 查询 正如 Michal Niklas 所说 IBM
  • 检查对以下内容的理解:“变量”与“变量” “价值”、“功能”与“抽象”

    这个问题是后续问题this one https stackoverflow com questions 25327705 is function a sort of variable 25329157 25329157在学习 Haskell

随机推荐