繁体   English   中英

Bash脚本更改目录不返回任何此类文件或目录

[英]Bash script change directory returns no such file or directory

我正在使用一个脚本,该脚本会读取目录的完整路径的输入(例如~/test ),但是当我运行shell脚本时,它会返回以下内容:

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

我在另一个目录中运行test-script.sh文件,因此我假设这很简单:

脚本中的cd ~/test可以做到,但我想不是。

我知道这可能是一个多余的问题,但是除了在脚本中执行简单的cd ~/test之外,其他大多数问题/示例都涉及循环和其他情况。

作为参考,这就是我在脚本中所做的一切:

echo What directory do you want to change to?

read directory_name

cd $directory_name

同样,bash / shell脚本是新手,因此,如果还有其他想法或建议,我全力以赴。 谢谢!

解决方案1)

如果要使用 ,则需要使用eval。

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

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

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

你可以做CD〜CD〜用户A切换到用户A主目录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM