gpt4 book ai didi

linux - Shell 脚本波浪号扩展

转载 作者:IT王子 更新时间:2023-10-29 00:18:04 25 4
gpt4 key购买 nike

这是我的脚本:

#!/bin/bash 
echo "Digite o local em que deseja instalar o IGRAFU(pressione enter para
instalar em
${HOME}/IGRAFO):"
read caminho
if test -z $caminho
then
caminho="${HOME}/IGRAFO"
fi
echo "O IGRAFU será instalado no diretório: $caminho"
mkdir -pv $caminho

mv -v ./* $caminho
echo "Pronto!"

在'read caminho',我可能会从用户那里收到一个类似~/somefolder 的路径。当脚本收到这种路径时,mv 和 mkdir 都不会进行波浪号扩展,因此它将尝试创建一个 ~/somefolder 而不是/home/username/somefolder,因此失败。

如何确保将波浪号转换为 HOME 变量?

最佳答案

您可能需要评估变量以正确替换它。一个例子就是简单地做

caminho=`eval "echo $caminho"`

请记住,如果 caminho 包含分号或引号,这将中断,它还将反斜杠视为转义,如果数据不受信任,您需要注意您不是注入(inject)攻击的目标。

希望对您有所帮助。

关于linux - Shell 脚本波浪号扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/453627/

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