代码之家  ›  专栏  ›  技术社区  ›  ultraloveninja

Bash脚本change directory不返回此类文件或目录

  •  0
  • ultraloveninja  · 技术社区  · 8 年前

    ~/test )但当我运行shell脚本时,它会返回以下内容:

    test-script.sh: line 34: cd: ~/test: No such file or directory

    test-script.sh 文件在另一个目录中,所以我假设一个简单的:

    cd ~/test

    我知道这可能是一个多余的问题,但大多数其他问题/例子都是循环和其他情况,而不仅仅是做一个简单的 cd~/测试 在剧本里。

    作为参考,我在剧本中所做的就是:

    echo What directory do you want to change to?
    
    read directory_name
    
    cd $directory_name
    

    1 回复  |  直到 8 年前
        1
  •  0
  •   EchoMike444    8 年前

    解决方案1)

    如果你想用 ~

    #!/bin/bash
    pwd
    echo What directory do you want to change to?
    read directory_name
    eval "cd $directory_name"
    pwd
    

    但是这个解决方案很弱,因为有人可以输入一些maliciuois命令而不是一个目录名,这个脚本就会执行。

    解决方案2) 检查目录名的第一个字符是否为 ~ 并用适当的值替换它,它可以是当前用户home dir或另一个用户home dir。

    你能做到的 cd~用户A 改为 用户A homedir公司

    推荐文章