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