0

Linuxでのシェルスクリプトを初めて使用し、キーボードからデータを取得して、渡されたデータをファイルに追加しようとしています。非常に簡単ですが、ファイルを作成しようとするとエラーが発生します。エラーには、「このファイルを作成する権限がありません」と表示されます。

まず、ファイルが存在することを確認するためのチェックを行います。存在する場合は、ファイルの最後に追加します。そうでない場合は、ファイルを作成します。私は何が間違っているのですか?

ありがとうございました!

PSこの場合、ファイルはまだ作成されていません

#!/bin/sh                                                                                                                            

echo "Please enter your first name";
read first
echo "Please enter your last name";
read last

combine=":$first $last"
file="/testFile.dat"

if [ -f "$file" ]
then
echo "$file found."
echo $combine >> $file
else
echo "$file not found. Will create the file and add entry now."
touch $file
$combine >> $file
fi
4

2 に答える 2

3

ルートでファイルを作成しています。file="~/testFile.dat"自宅にファイルを作成するかfile="./testFile.dat"、現在のディレクトリにファイルを作成してみてください。

于 2013-03-24T22:05:20.050 に答える
3

/testFile.datルートディレクトリにあるファイルに書き込もうとしています/。通常のユーザーとして、そのようなファイルを作成するための書き込み権限を持っていない可能性が高いです。

しかし、あなたが望んでいたのtestfile.datは、現在のディレクトリにを作成することだと思います。

次の行を置き換えます。

file="/testFile.dat"

と:

file="./testFile.dat"
于 2013-03-24T22:06:21.103 に答える