シェルスクリプトを使用してファイルの内容にアクセスする

シェルスクリプトを使用してファイルの内容にアクセスする

ファイルからユーザーとパスワードを取得し、スクリプトで使用する必要があります。

私のファイルは次のとおりです(netrcは私のファイル名です)。

machine ftp.test.net login test_user password test_pass
machine ftp1.test.net login test_user1 password test_pass1

ファイルにアクセスし、特定のコンピュータのユーザー名とパスワードを取得する関数を作成したいと思います。

ベストアンサー1

get_netrc_user () {
    awk -v machine="$1" '$2 == machine { print $4 }' netrc
}

get_netrc_user () {
    awk -v machine="$1" '$2 == machine { print $6 }' netrc
}

最初の関数は特定のコンピュータのユーザー名/ログインを取得し、2番目の関数はパスワードを取得します。

指示:

username=$( get_netrc_user 'ftp.test.net' )
password=$( get_netrc_pass 'ftp.test.net' )

ただし、get_netrc_passパスワードにスペースが含まれていないとします。その場合は、もう少し安全に変更できます。

get_netrc_user () {
    awk -v machine="$1" '$2 == machine { sub(".*password ", "", $0); print }' netrc
}

これで、ファイル内の6番目のスペースで区切られたフィールドを返すのではなく、文字列の前のすべてのエントリpassword(末尾にスペースを含む)を削除し、行の残りの部分を返します。パスワードに明らかにその文字列が含まれている場合、それでも失敗します。

おすすめ記事