gpt4 book ai didi

linux - BASH 脚本 : take a filename (with spaces) as argument and use name (no ext) and also full filename as args for scripted command

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:13 29 4
gpt4 key购买 nike

我刚开始在 BASH 中使用 args 并尝试在给定的 .MKV 上设置“标题”标签以匹配其文件名:减去扩展名。命令...

mkvpropedit "Good Life.mkv" --edit info --set "title=Good Life"

...工作没有问题并且(感谢另一个已回答的 StackOverflow 问题),我可以提取完整的文件名 - 带空格和扩展名 - 并将其可靠地拆分为完整的文件名(即“Good Life.mkv”)和不带扩展名的文件名:即“美好生活”。完整的脚本 (mkvRetitle.sh) 是...

#!/bin/bash
echo "Change .MKV title to match its filename"
eval fileWhole=\${1}
eval fileTitle=$(echo "\${1%.*}")
# echo $fileWhole
# echo $fileTitle
mkvpropedit fileWhole --edit info --set "title=$fileTitle"

但是,在我的脚本中实际调用“mkvpropedit”时出错了。 mkvpropedit 返回 Error: The file 'fileWhole' is not a Matroska file or it could not be found. 我试过在 Passing a string with spaces as a function argument in bash

但运气不好,找不到其他看起来可能的东西:来自其他站点。 我真的很感激你的帮助。非常感谢。

最佳答案

每当您必须处理包含空格的变量/参数时,只需在其周围加上引号即可。

#!/bin/bash
echo "Change .MKV title to match its filename"
fileWhole="$1"
fileTitle="${1%.*}"
echo "$fileWhole"
echo "$fileTitle"
mkvpropedit "$fileWhole" --edit info --set "title=$fileTitle"

关于linux - BASH 脚本 : take a filename (with spaces) as argument and use name (no ext) and also full filename as args for scripted command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46185167/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com