我正在尝试将命令的输出设置为脚本中的变量。我已经搜索了一整天,看起来我有正确的命令。但每次我运行我的脚本时,它只是运行命令而不是只将它分配给一个变量而不运行它。
这是脚本的相关部分:
ffname=$(rename 's/_1080p_12000//' *.*)
echo $ffname
我需要在脚本的另一部分使用 ffname 作为变量而不运行命令.. 但它似乎不想工作。有人有什么建议吗?
您可以添加-n
(no-act) 选项rename
来获取输出。
ffnames=($(rename -n 's/_1080p_12000//' *.* | awk '{print $1,$NF}'))
结果包含多个项目。所以你需要一个数组来保存它们。
然后在没有-n
选项的情况下进行真正的重命名。
如果您使用的是 Bash,则可以在填充的变量上使用shell 参数扩展替换运算符来替换要删除的文件名部分。例如:
$ ffname=foo_1080p_12000.bar
$ echo "${ffname/_1080p_12000}"
foo.bar
但是,执行实际的 mv 或 rename 命令,或者根据需要将修改后的值重新分配回ffname 将由您自己决定。