This tutorial is to show you how to read a password from a file in Linux using the shell script.
For the below example, I am creating a single file to store the password for each user. Suppose you want to store the password for three users then you need to create three files. For example, the filename will be the username, and it will save the password for that user only.
To store the password files, I have created a directory at /home/vin/test/passwords. Here is how I set up my passwords directory for everyone but the user who owns it.
Everyone can access it only, but the owner can create and delete.
$ cd /home/vin/test $ ls -ld passwords
Output:
drwxrwxr-x 2 vin vin 4096 Mar 26 19:07 passwords
Example - Create a Password File in Linux
To create a password file in Linux, I am using the echo command by redirecting its output to a file to write the password for a specific user quickly. In the below example, It will create a password file system.pw for the user SYSTEM and storing the password VINISH.
$ cd passwords $ pwd /home/vin/test/passwords $ echo 'vinish' > system.pw $ ls system.pw $ cat system.pw vinish
The password file is ready now. We can use it in our shell script as showing in the following example.
Example - Reading a Password from a File in Linux
The below shell script read_password.sh will read the password from the file system.pw using the cat command and will store the password into the variable system_pw.
read_password.sh
#!/bin/bash system_pw=`cat /home/vin/test/passwords/system.pw` sqlplus -S system/$system_pw@//YourIP/orcl << EOF set pagesize 0 linesize 80 feedback off SELECT 'Database ' || instance_name || ' has been running since ' || TO_CHAR (startup_time, 'HH24:MI MM/DD/YYYY') FROM v\$instance; Exit; EOF exit
Test
$ ./read_password.sh
Output
Database orcl has been running since 13:22 03/14/2019
See also:
- Bash – Check Number of Arguments Passed to a Script in Linux
- How to Install SQL*PLUS in Linux? (Ubuntu)
- How to Encrypt Password in Oracle?