加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 将命令输出分配给shell变量

发布时间:2020-12-14 02:02:02 所属栏目:Linux 来源:网络整理
导读:我试图将剪切命令的输出分配给变量,但是我遇到了一个奇怪的问题. 我正在使用tcsh shell. $echo $0tcsh 这是我正在运行的命令: $set a=`cut -f2 -d' ' test.txt`Missing }. //This is the output I am getting 现在该文件非常简单(这不是我正在处理的文件,但
我试图将剪切命令的输出分配给变量,但是我遇到了一个奇怪的问题.
我正在使用tcsh shell.

$echo $0
tcsh

这是我正在运行的命令:

$set a=`cut -f2 -d' ' test.txt`
Missing }.    //This is the output I am getting

现在该文件非常简单(这不是我正在处理的文件,但我将问题减少到了这一点.)

的test.txt:

{ {corner

而已!这是文件.如果我将文件更改为:

{ {corner}

语句有效,但“a”获得以下值:

$echo $a
corner   //Please note its not {corner} but corner

因此我认为shell正试图执行{corner
?作为一个命令,因为它缺少关闭支撑壳抱怨.有谁知道它为什么会出现这种行为?我的理解是它应该只将cut的输出分配给变量,但看起来像递归分配它!
新手

解决方法

你必须用双引号括起来

set a="`cut -f2 -d' ' test.txt`"

同样适用于回声等用途

echo "$a"

产量

{corner

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读