私のlinux(centos 7)には、2人のユーザーA(一般ユーザー)とB(ホイールグループに所属)がいます。 ユーザーBで次のコマンドを実行して、ユーザーAの.bash_profileファイルを変更しようとしています。
./test.sh /home/a/.bash_profile "何かエクスポート"
#!/bin/bash
set -o errexit
filePath=${1};
content=${2};
result=`sudo grep "$content" $filePath || true`\
if [[ -z $result ]] || [[ $result == \#* ]]; then
echo "inside the first if";
sudo sh -c "$(sed '$a\' ${filePath} > ${filePath}.bak)";
sudo sh -c "$(echo $content >> ${filePath}.bak)";
sudo rm -fr ${filePath};
sudo mv ${filePath}.bak ${filePath};
fi
ただし、次のようなエラーが発生しました。
/home/a/.bash_profile.bak:権限が拒否されました