Input/Output

Pada materi kali ini kita akan mempelajari tentang cara menyimpan inputan user ke dalam sebuah variable, sehingga user dengan program bisa berinteraktif.

Untuk melakukan hal tersebut kita bisa menggunakan perintah read.

Menyimpan Inputan User

Terdapat 2 contoh dimana kita akan menginputkan suatu nilai ke dalam variable, lalu variable tersebut bisa kita olah lagi.

./Contoh-1

read.sh
#!/bin/bash
# Membaca inputan user

echo "Siapa nama kamu?"
read nama
echo

echo "Apa profesi kamu?"
read profesi
echo

echo "Profesi kamu sebagai $profesi sangatlah keren,"
echo "Semangat selalu ya $nama!"

./Contoh-2

rubah_nama_file.sh
#!/bin/bash
# Merubah nama file

echo -n "Nama file yang ingin dirubah nama: "
read filelama

read -p "Nama file yang baru: " filebaru

mv $filelama $filebaru
echo "\nFile tersebut telah diganti menjadi $filebaru"

./Contoh-3

#!/bin/bash
# Menginputkan password

read -s -p "Masukkan password: " mypass

echo "\nPassword kamu: $mypass "

Parameter

Dengan menggunakan parameter, kita bisa langsung meneruskan data ke dalam script.

Membaca Parameter

Contoh berikut saya menginputkan 3 parameter. parameter ke-1 bisa dipanggil dengan $1, parameter ke-2 bisa dipanggil dengan $2 dan seterusnya.

#!/bin/bash

echo $0 # Script name

echo $1 # 1st parameter

echo $2 # 2nd parameter

echo $3 # 3rd parameter

Cek Parameter

#!/bin/bash

if [ -n "$1" ] # pengecekan apakah parameter ke-1 tersedia
then 
    echo Hi $1.
else
    echo "Parameter tidak ditemukan. "
fi

Jumlah Parameter

#!/bin/bash

echo "Terdapat $# parameter."
#!/bin/bash

echo "Parameter terakhir adalah ${!#}"

Iterasi Parameter

Variable $* menampung semua parameter sebagai satu nilai. Sedangkan variable $@ menampung semua parameter sebagai nilai yang terpisah.

#!/bin/bash

echo "Variable \$*: $*"
echo "-----------"
echo "Variable \$@: $@"
#!/bin/bash

total=1

for var in "$*"
do
    echo "\$* Parameter #$total = $var"
    
    total=$(($total+1))
done

total=1

for var in "$@"
do
    echo "\$@ Parameter #$total = $var"
    
    total=$(($total+1))
done

Shifting

#!/bin/bash

total=1

while [ -n "$1" ]
do
    echo "Parameter ke-1 = $1"

    shift
done

Options

#!/bin/bash

while [ -n "$1" ]
do
    case "$1" in
        
        -a) echo "Opsi -a dipilih" ;;
        
        -b) echo "Opsi -b dipilih" ;;
        
        -c) echo "Opsi -c dipilih" ;;
        
        *) echo "Opsi $1 tidak tersedia" ;;
        
    esac
    
    shift
done

Memisahkan Opsi dari parameter

#!/bin/bash

while [ -n "$1" ]
do
    case "$1" in
        
        -a) echo "Opsi -a dipilih" ;;
        
        -b) echo "Opsi -b dipilih" ;;
        
        -c) echo "Opsi -c dipilih" ;;
        
        --)
            shift
            break # keluar dari looping
        ;;
        
        *) echo "Opsi $1 tidak tersedia" ;;
        
    esac
    
    shift
done

total=1

for param in $@
do
    echo "#$total: $param"
    
    total=$(($total + 1))
done

Proses Opsi dengan Nilainya

#!/bin/bash

while [ -n "$1" ]
do
    case "$1" in
        
        -a) echo "Opsi -a dipilih" ;;
        
        -b) 
            param="$2"

            echo "Opsi -b dipilih dengan nilai $param"

            shift
        ;;
        
        -c) echo "Opsi -c dipilih" ;;
        
        --)
            shift
            break # keluar dari looping
        ;;
        
        *) echo "Opsi $1 tidak tersedia" ;;
        
    esac
    
    shift
done

total=1

for param in $@
do
    echo "#$total: $param"
    
    total=$(($total + 1))
done

Last updated

Was this helpful?