gpt4 book ai didi

linux - 如何对 BASH 输入或变量进行排毒?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:31 25 4
gpt4 key购买 nike

我目前正在使用 (tr -d ' ' <<< "$LOC1") 排毒 (将空格更改为\/等) 文件路径。这不是很好,因为它只删除空格而不是像 "File\ path/" 这样的正确格式。 .由于变量 $LOC1 可以包含不同的路径,因此它需要“适应性强”。

我找不到任何允许使用“灵活”文件路径/变量的解决方案。所以在这里虚心请教。

我昨天开始学习如何“编写脚本?”,所以如果我说不清楚,请原谅。

 #!/bin/bash

LOC1=$(zenity --file-selection --directory --title="Select first directory")

LOC2=$(zenity --file-selection --directory --title="Select second direcotry")
LOC1=$(tr -d ' ' <<< "$LOC1")
LOC2=$(tr -d ' ' <<< "$LOC2")
clear
rsync -r --info=progress2 --delete-excluded $LOC1 $LOC2
read -n 1 -s -r -p "Your back-up is complete, Press any key to exit..."

提前致谢!

编辑:问题在于 zenity 为用户提供了选择目录的输入,但并未删除该目录路径中的空格。它将输出例如:/media/productivity/Seagate backup A/Back-up而不是 /media/productivity/Seagate\ backup\ A/Back-up

我如何做到这一点,以便脚本在不知道会有多少空格的情况下对文件路径进行排毒?

最佳答案

据我所知,您不需要对正在运行的脚本进行此路径修改。只需引用所有变量,以便正确解释它们:

#!/bin/bash

LOC1=$(zenity --file-selection --directory --title="Select first directory")
LOC2=$(zenity --file-selection --directory --title="Select second direcotry")

clear
rsync -r --info=progress2 --delete-excluded "$LOC1" "$LOC2"
read -n 1 -s -r -p "Your back-up is complete, Press any key to exit..."

关于linux - 如何对 BASH 输入或变量进行排毒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52115360/

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