我正在尝试创建一个临时目录,将一些文件复制到其中,进行一些处理,然后删除该目录。到目前为止,我有:
#!/usr/bin/env bash
__tmpdir="mktemp -d /Users/Riwaz/support.XXXXXXXXXX" #Create temp directory; store address
cp /some_location/checkstyle.xml $__tmpdir #Copy a file into the directory
cd $__tmpdir
tar -czvf result.tar.gz *
cp result.tar.gz /Users/Riwaz/
rm $__tmpdir
但是当我使用 sh 运行时,我得到:
line 7: cd: mktemp: No such file or directory
rm: mktemp: No such file or directory
rm: -d: No such file or directory
rm: /Users/Riwaz/support.XXXXXXXXXX: No such file or directory
这表明 mktemp 语句永远不会被处理,并且变量包含实际命令而不是地址。我将如何让 bash 评估命令并存储地址?我搞砸了 ""、{} 和 eval,但无法使其工作。