Linux

似乎無法在 bash 中創建文件

  • February 4, 2015

我正在嘗試在 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 腳本的一部分執行。

當您第一次執行命令時,該.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

引用自:https://serverfault.com/questions/664950