我想将命令的输出设置为脚本中的变量。我搜索了一整天,它看起来像我有权利的命令。但每次运行我的脚本时,它都会运行该命令,而不是只将它分配给一个变量而不运行它。如何将重命名命令的结果分配给变量?
这里是脚本的相关部分:
ffname=$(rename 's/_1080p_12000//' *.*)
echo $ffname
我需要使用ffname作为变量在脚本中的另一部分,而不运行命令..但它似乎没有想工作。任何人有任何建议?
我想将命令的输出设置为脚本中的变量。我搜索了一整天,它看起来像我有权利的命令。但每次运行我的脚本时,它都会运行该命令,而不是只将它分配给一个变量而不运行它。如何将重命名命令的结果分配给变量?
这里是脚本的相关部分:
ffname=$(rename 's/_1080p_12000//' *.*)
echo $ffname
我需要使用ffname作为变量在脚本中的另一部分,而不运行命令..但它似乎没有想工作。任何人有任何建议?
您可以将-n
(无行为)选项添加到rename
以获取输出。
ffnames=($(rename -n 's/_1080p_12000//' *.* | awk '{print $1,$NF}'))
结果中包含多个项目。所以你需要一个数组来保存它们。
然后做没有-n
选项的真实重命名。
如果您使用Bash,则可以使用shell parameter expansion替换运算符来填充已填充的变量,以替换要删除的文件名部分。例如:修改后的值,如果你喜欢
$ ffname=foo_1080p_12000.bar
$ echo "${ffname/_1080p_12000}"
foo.bar
但是,它仍将由你来执行实际的MV或重命名命令,或重新分配回ffname。
ubuntu上的'rename'不输出任何内容,除非使用-v。最好避免重命名。 – jordanm