Anda di halaman 1dari 17

Praktikum Laporan Praktikum

resmi 10
10 Perintah Set

Nama : Shafira Zelinda ‘Ainiyatur Rohmah


NRP : 2220610007
Kelas : 2 D4 PJJ Telekomunikasi

POLITEKNIK ELEKTRONIKA SURABAYA


2021
A.TUJUAN
1. Menggunakan perintah set untuk menampilkan isi suatu variabel.
2. Menggunakan perintah set untuk mengambil nilai parameter posisi pada
shell.
3. Menggunakan perintah set dan option flag untuk membantu proses debug
dan menampilkan hasil eksekusi pada shell script.

B. DASAR TEORI

Statement Set

Perintah set digunakan untuk beberapa tujuan, diantaranya adalah digunakan


untuk menampilkan isi dari suatu variabel. Ketika sebuah argumen telah
disiapkan dengan perintah set, maka pekerjaan yang akan dilaksanakan
adalah:

• Mengontrol setting internal option shell.


• Me-load (mengambil) nilai parameter posisi pada shell.

Contoh perintah set :


$ set –v
$ -

Perintah diatas menyebabkan shell mengaktifkan mode verbose. Pada mode ini
(verbose) shell akan mencetak/menampilkan semua baris masukkan yang telah
dibaca. Hal ini sangat dibutuhkan oleh shell untuk mendebug script shell.
Sintak perintah set pada shell script dan perintah untuk men-debug shell script
adalah sebagai berikut:

87
Syntak debug :

sh option { shell-script-name }
atau
bash option { shell-script-name }

Syntak shell script :

(set `command`).

Sedangkan mode verbose ini dapat dimatikan/disable dengan perintah berikut:


$ set +v
set +v
$ -

Perlu diketahui, bagaimana perintah mematikan mode verbose untuk


menampilkan ke layar sebelum proses eksekusi dan pengaruhnya ketika dalam
mode verbose.
Selain menggunakan flag dengan opsi x, dapat pula dengan menggunakan
perintah shell untuk menampilkan hasil eksekusi. Penggunaan flag dengan opsi
x dapat membantu untuk proses debug pada shell script. Argumen flag dapat
dipakai untuk mengontrol perintah set dengan memberikan supplay argumen
command line ketika melakukan invoking pada shell untuk mengeksekusi
beberapa perintah didalam sebuah file. Perhatikan contoh berikut:
$ cat lsdir
if [ $# = 0 ]
then
dir=.
else
Dir=$1
fi
find $dir –type d –print
$ sh –x lsdir
+ [0=0]
dir=.
+ find . –type d –print
.
./bin
./bin/obin
./tbin
./xsrc
$ -

88
Pada contoh diatas diperlihatkan perintah shell melakukan eksekusi perintah
didalam "lsdir" dengan set flag x. Pengaruh yang ditimbulkan oleh perintah set
–x dalam perintah "lsdir" yaitu pada awal baris dengan sebuah tanda (+)
merupakan hasil dari supplay flag x. Perintah set menerima pernyataan opsi
dari flag, dan akan set ketika didahului oleh tanda (-) ; akan unset ketika
didahului tanda plus (+). Beberapa opsi flag adalah sebagai berikut:

Option Description
-n. Reads all commands, but does not execute them
-v Displays all lines as they are read.
-x Displays all commands and their arguments as they execute.
This option is often referred to as the shell tracing option.
-t Makes the shell exit after executing one command
-u Makes it an error to reference an unset variable
-e Is used in shell script to cause an immediate exit if a
command fails
-k Cause all keyword arguments to be placed into the
environment of the given command
- Tell the shell to disable the –v and –x debugging flags
-- Is an option no-op.

Sewaktu opsi argument disertakan pada set, set akan mengambil isi argument
dan memberikannya pada parameter posisi $1, $2, .. dan seterusnya. Jika
featur (args) dipakai pada set didalam sebuah shell script, maka nilai asal pada
parameter posisi akan hilang. Sebaliknya, set dapat digunakan untuk
mengganti flag tanpa berpengaruh pada parameter posisi. Ide untuk menjaga
keadaan set menggunakan tiga cara:

• Otomatisasi opsi dan argument ketika shell memintanya.


• Dengan menggantikan opsi yang diperlukan shell.
• Memberikan multiword line dan tempat word ke dalam parameter posisi.

Beberapa shell script memiliki fasilitas debugging untuk mengaktifkan opsi


command line. Opsi-opsi command line –u, -v, dan –x merupakan opsi control
yang sama pada shell.

C. PROSEDUR
1. Masuk ke sistem operasi Linux.

89
2. Login sebagai stD3XXYYY.
3. Gunakan perintah set pada pemrograman shell.
4. Catatlah hasil dari setiap program pada prosedur no.3 sebagai laporan
sementara.

D. PERCOBAAN
1. Menampilkan seluruh perintah dan hasil eksekusi
$ set
$ set –v
$ set +v
$ cat > lsdir
if [ $# = 0 ]
then
dir=.
else
Dir=$1
fi
find $dir –type d –print
^d
$ sh –x lsdir
2. Menggunakan perintah set dengan opsi flag (-u, -v, dan –x)
$ cat > opt
while test $# -gt 0
do
case $1 in
-u)
set –u
shift
;;
-v)
set –v
shift
;;
-x)
set –x
shift
;;
esac
done
echo Ini adalah body shell script.
^d
$ chmod u+x opt
$ ./opt
$ sh –x opt
$ ./opt –u
$ ./opt -v
$ ./opt -x

3. Menggunakan perintah set dengan beberapa opsi flag


$ cat > opts
while test $# -gt 0
do
case $1 in
-U|-V|-X)
set `echo $1 | tr UVR uvx`
shift
;;
esac
done
echo Ini adalah body shell script.
$ chmod u+x opts
$ ./opts
$ ./opts –u atau -U
$ ./opts –v atau -V
$ ./opts –x atau -X
4. Menggunakan perintah set dengan opsi flag (--) untuk mengambil argumen
dan memberikannya pada parameter posisi
$ date
$ set -- `date`
$ echo $1 $2 $3
$ year=$6
$ echo $year
$ ls –l /etc/motd
$ set -- `ls –l /etc/motd`
$ echo $9 : $5 $1
$ ls –l /etc/motd
$ set `ls –l /etc/motd`
$ echo $9 : $5 $1
$ set X `ls –l /etc/motd`
$ echo $9 : $5 $1
$ shift
$ echo $9 : $5 $1

5. Menggunakan perintah set dengan opsi flag (-k) untuk reverse posisi
$ cat > myname
echo My name is $name and my argument is $1
^d
$ chmod u+x myname
$ cat myname
$ echo $- ;sebelum set -k $ name=george
./myname john
$ ./myname name=george john
$ set –k
$ echo $- ;sesudah set -k $ name=george
./myname john $ ./myname name=george john
6. Penggunaan perintah set dengan parameter posisi ($1, $2, ...)
$ vi set1.sh
#!/bin/bash
echo
echo "Parameter posisi sebelum set \`uname -a\` :"
echo "Command-line argument #1 = $1"
echo "Command-line argument #2 = $2"
echo "Command-line argument #3 = $3"

set `uname -a`


echo $_
echo "Parameter posisi sesudah set \`uname -a\` :"
echo "Field #1 of 'uname -a' = $1"
echo "Field #2 of 'uname -a' = $2"
echo "Field #3 of 'uname -a' = $3"
echo ---
echo $_
echo
exit 0
$ chmod u+x set1.sh
$ ./set1.sh
$ ./set1.sh 1 2 3 atau $ ./set1.sh apel jeruk manga
7. Mengganti letak (pembalikkan posisi) dari parameter posisi
$ vi set2.sh
#!/bin/bash
set a\ b c d\ e;
OIFS=$IFS; IFS=:; #internal field separator echo

until [ $# -eq 0 ]
do
echo "### k0 = "$k"" # Before
k=$1:$k;
echo "### k = "$k"" # After
echo
shift;
done
set $k
echo -
echo $#
echo -

for i
do
echo $i
done
IFS=$OIFS
exit 0
$ chmod u+x set2.sh
$ ./set2.sh
8. Menggunakan perintah set dengan opsi flag (--) untuk mengambil isi
variabel
$ vi set3.sh
#!/bin/bash
variable="one two three four five"
set -- $variable
first_param=$1
second_param=$2
shift; shift
remaining_params="$*"

echo
echo "first parameter = $first_param"
echo "second parameter = $second_param"
echo "remaining parameters = $remaining_params"
echo; echo

set -- $variable
first_param=$1
second_param=$2
echo "first parameter = $first_param"
echo "second parameter = $second_param"

set --
first_param=$1
second_param=$2
echo "first parameter = $first_param"
echo "second parameter = $second_param
exit 0
$ chmod u+x set3.sh
$ ./set3.sh
9. Penggunaan perintah unset untuk menghapus isi variabel
$ vi set4.sh
#!/bin/bash
variable=hello
echo "variable = $variable"

unset variable
echo "(unset) variable = $variable"

if [ -z "$variable" ]
then
echo "\$variable has zero length."
fi
exit 0
$ chmod u+x set4.sh
$ ./set4.sh
10. Menggunakan perintah set dan perulangan (loop) dengan dua parameter
$ vi set5.sh
#!/bin/bash
for planet in "Mercury 36" "Venus 67" "Earth 93"
"Mars 142" "Jupiter 483"
do
set -- $planet
echo "$1 $2,000,000 miles from the sun"
done
exit 0
$ chmod u+x set5.sh
$ ./set5.sh

11. Menggunakan perintah set dan pengkondisian (if)


$ vi set6.sh
#!/bin/sh
set -x
if [ -z "$1" ] ; then
echo "ERROR: Insufficient Args."
exit 1
fi
$ chmod u+x set6.sh
$ ./set6.sh ; $ ./set6.sh 1 ; $ ./set6.sh saya

12. Menggunakan perintah set untuk enable (-) dan disable (+)
$ set -x ; ls *.sh ; set +x
$ /bin/sh ./set5.sh
ANALISA
1. Pada percobaan pertama yaitu menampilkan seluruh perintah dan hasil eksekusi dengan
perintah set. Perintah seperti set -V ini menyebabkan shell mengaktifkan mode verbose.
Pada mode verbose shell akan mencetak/menampilkan semua baris masukkan yang telah
dibaca. Pengaruh yang ditimbulkan oleh perintah set-x ini dalam perintah "Isdir" yaitu
pada awal baris dengan sebuah tanda (+) merupakan hasil dari supplay flag x. Perintah set
menerima pernyataan opsi dari flag, dan akan set ketika didahului oleh tanda (-); dan akan
unset ketika didahului tanda plus (+).
2. Pada percobaan kedua yaitu menggunakan perintah set dengan opsi flag (-u, -v, dan-x)
dan argumen flag ini dapat dipakai untuk mengontrol perintah set dengan memberikan
supplay argumen command line ketika melakukan invoking pada shell untuk
mengeksekusi beberapa perintah didalam sebuah file.
3. Pada percobaan ketiga yaitu menggunakan perintah set dengan beberapa opsi flag yaitu -U
-V dan -X, jika diketik tidak sesuai dengan opsi, maka output tidak akan muncul
4. Pada percobaan keempat yaitu menggunakan perintah set dengan opsi flag (--) untuk
mengambil argumen dan memberikannya pada parameter posisi.
5. Pada percobaan kelima yaitu menggunakan perintah set dengan opsi flag (-k) untuk
reverse posisi. Perintahs set -k ini menyebabkan semua argumen kata kunci ditempatkan
ke dalam posisi dari perintah yang diberikan.
6. 6. Pada percobaan keenam yaitu penggunaan perintah set dengan parameter posisi ($1,
$2,). Sewaktu opsi argument disertakan pada set, maka set akan mengambil isi argument
dan memberikannya pada parameter posisi $1. $2,.. dan seterusnya. Jika featur (args)
dipakai pada set didalam sebuah shell script, maka nilai asal pada parameter posisi akan
hilang. Sebaliknya, set dapat digunakan untuk mengganti flag tanpa berpengaruh pada
parameter posisi. seperti pada percobaan jika kita menginputkan argument maka akan
muncul parameter 1 2 3 dan jika kita menginputan argument apel nanas manga maka akan
muncul parameter tersebut.
7. Pada percobaan ketujuh yaitu mengganti letak (pembalikkan posisi) dari parameter posisi,
fungsi echo - adalah untuk beri tahu shell untuk menonaktifkan flag-dan-x debugging.
8. Pada percobaan kedelapan yaitu menggunakan perintah set dengan opsi flag (--) untuk
mengambil variable tersebut.
9. Pada percobaan kesembilan yaitu penggunaan perintah unset untuk menghapus isi variabel
dengan perintah unset variable.
10. Pada percobaan kesepuluh vaitu menggunakan perintah set dan perulangan (loop) dengan
menggunakan dua parameter.
11. Pada percobaan kesebelas yaitu menggunakan perintah set dan pengkondisian (if).
12. Pada percobaan yang terakhir yaitu menggunakan perintah set untuk enable (-) dan disable
(+) .

KESIMPULAN:
Setelah melakukan beberapa percobaan dapat disimpulkan bahwa set – Perintah untuk set
(mengatur) atau unset (membatalkan) shell variable. Ketika digunakan tanpa argumen, ia
akan mencetak daftar semua variabel termasuk environment dan shell variables, dan shell
functions. Beberapa shell script memiliki fasilitas debugging untuk mengaktifkan opsi
command line. Opsi-opsi command line –u, -v, dan –x merupakan opsi control yang sama
pada shell.

Anda mungkin juga menyukai