Pan*_*dya 5 command-line bash scripts home-directory
我们知道~并$HOME引用当前用户的主目录。(对我来说echo ~= echo $HOME= pandya)。
但是我不能在 bash 脚本中使用它。这是一个简单的示例脚本:
#!/bin/bash
echo -n "Enter Directory Path:"
read dir1
cd $dir1
Run Code Online (Sandbox Code Playgroud)
但是执行的时候报错No such file or directory如下:
$ ./script
Enter Directory Path:~/Desktop
./script: line 4: cd: ~/Desktop: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果/home/pandya使用而不是~,那么它正在工作。
同样的问题$HOME。
因此,如何正确使用cd与~或$HOME在这样的bash脚本?
您可以使用eval命令解决此问题:
#!/bin/bash
echo -n "Enter Directory Path:"
read dir1
eval cd "$dir1"
Run Code Online (Sandbox Code Playgroud)
因为在您的代码中$dir1不会存储~/Desktop但它会存储/home/user/Desktop所以您可以使用 eval 命令。
在这里了解Eval命令