似乎无法在 bash 中创建文件

似乎无法在 bash 中创建文件

我正在尝试在 debian 7 中使用此代码(在 root 帐户下)。

#!/bin/bash

cat > /root/.ssh/github.id_rsa << EOF
-----BEGIN RSA PRIVATE KEY-----
XYZ...
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /root/.ssh/github.id_rsa

当我之后导航到此文件夹时,它告诉我它不存在。我检查了一遍又一遍,但还是不知道我做错了什么。

编辑:当我手动运行命令时,它似乎有效!但我试图将其作为 shell 脚本的一部分运行。

答案1

当您第一次运行该命令时,该.ssh文件夹可能不存在。最安全的做法是在cat检查/创建文件夹之前添加一个命令:

#!/bin/bash

mkdir -p /root/.ssh

chmod 700 /root/.ssh
cat > /root/.ssh/github.id_rsa << EOF
<some content>
EOF
chmod 600 /root/.ssh/github.id_rsa

相关内容