目前,我有一个bash脚本将解压缩我的根目录中的文件:
#!/bin/bash
tar xvf ~/some-file.tar
这没有问题。现在,我想改变它,以便我可以在预定义的变量中指定文件的路径,如:
#!/bin/bash
p="~"
tar xvf $p/some-file.tar
这给了我以下错误消息:
tar: ~/some-file.tar: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
该文件的路径似乎是正确的,但是,是否有一些隐藏的字符导致此失败?连接变量和路径而不将两者都存储在字符串变量(如果有的话)中的正确方法是什么?
答案 0 :(得分:4)
在变量内部,Tilde扩展不起作用。您可以改为使用$HOME
变量:
#!/bin/bash
p=$HOME
tar xvf "$p/some_file.tar"