我正在更新 z/OS 中的 Bash 脚本。当前脚本使用反引号命令的结果来测试某个条件,如下所示:
var=`command`
[test value of var]
问题是一位客户无权访问 /tmp 目录,并且 z/OS 使用 /tmp 中的文件来保存反引号命令的中间数据。
我想我可以在 /tmp 可访问性的反引号命令之前进行测试,并相应地更改脚本的行为。不过,我没有找到这样做的好方法。有什么建议么?
我正在更新 z/OS 中的 Bash 脚本。当前脚本使用反引号命令的结果来测试某个条件,如下所示:
var=`command`
[test value of var]
问题是一位客户无权访问 /tmp 目录,并且 z/OS 使用 /tmp 中的文件来保存反引号命令的中间数据。
我想我可以在 /tmp 可访问性的反引号命令之前进行测试,并相应地更改脚本的行为。不过,我没有找到这样做的好方法。有什么建议么?
在 bash 中,您可以使用test
内置来测试文件权限。
所以你可以test -d /tmp
用来检查是否/tmp
是一个目录或test -w /tmp
用来测试/tmp
你是否可以写。
您也可以将 the[
用作test
like in的同义词
if [ -d /tmp -a -w /tmp ] ; then
echo "/tmp is a directory and writable"
fi
见help test
bash。它解释了所有可用的测试。
另一件事:有时可以告诉程序将哪个目录用于临时数据,例如 in sort -T /home/user/tmp
,有时它们尊重TMPDIR
环境变量。取决于您在反引号中执行的程序。
if [[ -w /tmp ]]...
将测试当前用户是否具有对/tmp
.
可能还有另一种选择。我没有 z/OS,但一些 UNIX 有一个TMPDIR
可以设置为临时目录的变量,例如:
export TMPDIR="$HOME"
可能会奏效。
另一方面,反引号通常被认为已被弃用。改为使用var=$(command)
。