2017-03-08 12 views
0

内のファイルへの絶対パスを格納し、私はなぜbashの - 変数

[-d〜/ DIR]を把握しようとしています。エコー$?

確かDIR = "〜/ dirの" dirはディレクトリが存在するとされた場合、0を返しますが、

。 [-d "$ {DIR}"];エコー$?

は常に1

エコー "$ {DIR}"

プリントを返し〜/ DIR、予想通り。私は、別のファイルへのパスを含むテキストファイルを与えられていて、catを使用して変数内にコンテンツを格納すると考えました。これを行う適切な方法は何ですか?

+0

http://stackoverflow.com/questions/3963716/how-to-manually-expand-a-special-variable-ex-tilde- in-bash/27485157#27485157 – ewcz

答えて

0

変数展開の前にチルダ展開が行われます。詳細はman bashを参照してください。 ~は実際のパスではなく、シェルによって実際のパスに展開されますが、変数に格納されたパスでは発生しません。実際のフルパスを変数に格納してください。

+0

これは意味があります。どうもありがとうございます! –

+0

"ありがとう" = upvote/accept :-) – choroba

+0

"評判が15未満の人の投票が記録されますが、公開されている投稿のスコアは変更されません。また、すぐに答えることができませんでした。あなたは信用を得るでしょう、心配しないでください。 –

0

bashのソリューションが、あなたは行うことができない、本当に:

DIR="~/dir" ; 

#expand the tilde 
DIR=$(python -c "import os;print(os.path.expanduser('${DIR}'));"); 

[ -d "${DIR}" ] ; echo $?