Bash - 将变量连接到路径

时间:2015-07-14 16:42:35

标签: linux bash

目前,我有一个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

该文件的路径似乎是正确的,但是,是否有一些隐藏的字符导致此失败?连接变量和路径而不将两者都存储在字符串变量(如果有的话)中的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

在变量内部,Tilde扩展不起作用。您可以改为使用$HOME变量:

#!/bin/bash
p=$HOME
tar xvf "$p/some_file.tar"