1
tracyone 2016-07-16 15:37:16 +08:00 1
$HOME
|
2
notgod 2016-07-16 15:45:19 +08:00
export TMP_DIR=$(~/.tangolog)
没转义 |
3
lxf1992521 2016-07-16 19:16:04 +08:00
估计是你的用户名中包含各种特殊字符,如空格、 TAB 、&、| 等,不然的话,不会出现这种情况的。
所以,以防万一,对变量要加上引号: if [ ! -d "$TMP_DIR" ] then mkdir "$TMP_DIR " |
4
greenskinmonster 2016-07-16 19:31:33 +08:00 via Android
先用 realpath 处理下
|
5
EchoWhale 2016-07-16 20:27:48 +08:00 via Android
$HOME
|
6
patrickstar OP |
7
lcj2class 2016-07-16 23:30:09 +08:00
不知道 lz 遇到什么问题,我在 Mac 、 centos 上测试了下面的代码可以在家目录创建目录的:
``` export ff=~/.haha if [ ! -d $ff ];then mkdir $ff fi ``` |
8
raysonx 2016-07-17 01:49:05 +08:00
我在我自己的机器上拿楼主的脚本跑了一下,是正常工作的。
从这句来看`mkdir $TMP_DIR`,$TMP_DIR 是会 Bash 被展开的,所以最好加上双引号,防止特殊符号注入。 另外, if 是不需要的,`mkdir -p "$TMP_DIR"`可以代替。 |
9
skydiver 2016-07-17 02:09:34 +08:00
https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html
~ 展开是 bash 的功能,你用的 /bin/sh 当然不行了…… 要么改成 /bin/bash 要么用$HOME |