如何将xargs命令的值赋给bash中的变量?

如何将xargs命令的值赋给bash中的变量?,bash,Bash,我需要分配一个变量$x值,该值从$1上的'file'命令返回。 我的代码是: echo $1 | xargs file 'x=$' 最后一部分x=$不起作用。 我需要的是,如果参数$1是'archive.zip',那么变量x将获得其上的命令'file'的值。 我该怎么做呢?在shell脚本中为变量赋值如下 a=$(echo $1 | xargs file) 上面的意思是执行$(…)中的内容,输出将分配给名为a 访问变量a的内容 echo $a 您还可以使用参数文件名直接执行file命

我需要分配一个变量
$x
值,该值从
$1
上的
'file'
命令返回。 我的代码是:

echo $1 | xargs file 'x=$'
最后一部分
x=$
不起作用。 我需要的是,如果参数
$1
'archive.zip'
,那么变量
x
将获得其上的命令
'file'
的值。
我该怎么做呢?

在shell脚本中为变量赋值如下

  a=$(echo $1 | xargs file)
上面的意思是执行
$(…)
中的内容,输出将分配给名为
a
访问变量
a的内容

 echo $a
您还可以使用参数文件名直接执行
file
命令,然后将输出存储到变量中

$1
是一个特殊参数,它是用于调用脚本的第一个参数

示例1

root@server[/root] > echo wiki.20191206.tar.gz | xargs file
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(echo wiki.20191206.tar.gz | xargs file)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 2019
root@server[/root] > file wiki.20191206.tar.gz
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(file wiki.20191206.tar.gz)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 201
示例2

root@server[/root] > echo wiki.20191206.tar.gz | xargs file
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(echo wiki.20191206.tar.gz | xargs file)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 2019
root@server[/root] > file wiki.20191206.tar.gz
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(file wiki.20191206.tar.gz)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 201

在shell脚本中为变量赋值如下

  a=$(echo $1 | xargs file)
上面的意思是执行
$(…)
中的内容,输出将分配给名为
a
访问变量
a的内容

 echo $a
您还可以使用参数文件名直接执行
file
命令,然后将输出存储到变量中

$1
是一个特殊参数,它是用于调用脚本的第一个参数

示例1

root@server[/root] > echo wiki.20191206.tar.gz | xargs file
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(echo wiki.20191206.tar.gz | xargs file)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 2019
root@server[/root] > file wiki.20191206.tar.gz
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(file wiki.20191206.tar.gz)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 201
示例2

root@server[/root] > echo wiki.20191206.tar.gz | xargs file
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(echo wiki.20191206.tar.gz | xargs file)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 2019
root@server[/root] > file wiki.20191206.tar.gz
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec  6 00:00:01 2019
root@server[/root] > a=$(file wiki.20191206.tar.gz)
root@server[/root] > echo $a
wiki.20191206.tar.gz: gzip compressed data, from Unix, last modified: Fri Dec 6 00:00:01 201

这个问题显然是重复的(你的答案也是)。下次你遇到这样的问题时,不要张贴答案,而是打个旗子然后继续前进。这个问题显然是重复的(你的答案也是重复的)。下次遇到这样的问题时,请不要发布答案,而是打个旗子然后继续。我很确定你可以选择
x=$(文件$1)
我很确定你可以选择
x=$(文件$1)