gpt4 book ai didi

linux - 自定义脚本 echo -e 参数

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

我正在尝试为学校作业编写 bash 脚本。我们被要求使用 linux 工具进行备份。我正在尝试使用参数让用户自定义备份来改善体验。我想在使用参数时考虑到这一点,所以我试图查看第二个参数是否以 - 开头,如果它以 - 开头,它就是另一个参数,所以我想要一个不同的行为。

echo "$2" | grep "^-" > /dev/null
if [[ $? -eq 0 ]]; then
#This works while the parameters are not -e, -E or -n
echo $2
echo "Input backup folder"
read path
else
path=$2
shift
fi

所以,问题是:你知道我怎样才能绕过这个问题吗?我发现只要参数不是 -e、-E 或 -n 作为 echo 参数,它就可以工作。所以我一直在尝试对参数的内容进行转义,但是我找不到答案。我对任何解决方案都满意,是另一种测试第二个参数是否以 - 开头的方法,或者是一种转义内容的方法。

感谢阅读本文。

最佳答案

实现目标功能的更惯用的方法是

case "$2" in
(-*)
echo "Set parameter '$2'"
read -p "Input backup folder: " path
;;
(*)
path="$2"
echo "Path: $path"
;;
esac
shift

但这只是故事的一部分……您应该将其包装在 while [ -n "$1"];做 ...; done 循环等等。但您可能已经知道这一点。

(此外,对备份文件夹使用 $path 是可行的并且完全合法;变量名区分大小写并且 shell 不会混淆,但人类读者可能会被事实上 $PATH 是完全不同的东西。)

关于linux - 自定义脚本 echo -e 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42063899/

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