这是我的脚本:
#!/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!"
在'阅读caminho'我可能会从用户接收像〜/ somefolderpath。 当脚本接收到这种types的path时,mv和mkdir都不会进行代字符扩展,所以它会尝试创build〜/ somefolder而不是/ home / username / somefolder,因此会失败。
我如何确保代字号将被转换为HOMEvariables?
Android Studio不会在OpenSUSE上启动(打开的文件太多)
远远从Linux上的64位代码调用__USER32_CS
Linux中“进程”,“线程”,“任务”和“作业”之间的区别和关系是什么?
是否有可能让python打开一个terminal并写信给它?
命令来了解可执行文件的文本,BSS等字段
vim打开现有选项卡中的缓冲区
运行sidekiq在运行Rails 3.1的Ubuntu 14.04上出现“Segmentation fault”错误
在Docker下,Ctrl-p和Ctrl-n意外的行为
任何人都可以解释为什么“git状态”显示文件作为修改时在Linux上的共享下运行?
您可能需要评估该变量是否正确替换。 一个例子就是简单地做
caminho=`eval "echo $caminho"`
请记住,如果caminho包含分号或引号,它会将反斜线视为转义,如果数据不可信,则需要注意,您不是注射攻击的目标。
希望有所帮助。
引用和扩展总是很棘手,特别是在bash中。 如果你自己的主目录足够好,这个代码工作(我测试过):
if test -z $caminho then caminho="${HOME}/IGRAFO" else case "$caminho" in '~') caminho="$HOME" ;; '~'/*) caminho="$HOME/${caminho#'~/'}" ;; '~'*) echo "Case of '$caminho' is not implemented" 1>&2 ;; esac fi
也许用/home/${USER}替代你的高级用户级目录,如果不是/home 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。