25 Ağustos 2020 Salı

source komutu

Giriş
source komutu tek bir dosya alır. Kullanımı şöyledir.
source filename [arguments]
source komutunun iki tane temel amacı var
1. Bir başka bash betiğindeki metodları kendi içime almam veya çalıştırmam
2. Bir başka dosyada tanımlı properties değerlerini kendi içime almam

Çalıştırma
Açıklaması şöyle. Yeni bir kabuk (shell) açmadan dosyadaki satırları çalıştırır.
source: source filename [arguments]

Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
Source işlemi için sadece read hakkı yeterlidir, execute hakkına gerek yoktur.

1. Source Komutu Alternatifi
"source + filename" yazmak yerine ". filename" şeklinde de yapılabilir.

Örnek
Normalde bir dosyayı çalıştırmak için şöyle yaparız
$ ./hello.sh
Source içinse şöyle yaparız
$ . hello.sh
Açıklaması şöyle
for t.sh the shell will search the PATH in order for a file named t.sh and execute it if it finds it

for . t.sh the shell will search the PATH in order for a file named t.sh but source it if it finds it.

2. Kullanım
Örnek - Properties
Elimizde şöyle bir my.properties dosyası olsun
REMOTE_IP1=10.44.165.236:1535
REMOTE_IP2=10.44.165.237:1535
Kendi dosyamda şöyle yaparız. Böylece artık değişkenlere $REMOTE_IP1 şeklinde erişebilirim
. my.properties
Örnek - Metod
Elimizde şöyle bir dizin yapısı olsun.
- main.sh
- lib/
  - clean.sh
  - get.sh
  - index.sh
  - test.sh
main.sh içinden alt dizindeki diğer sh dosyalarında tanımlı metodları çağırmak için şöyle yaparız.
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Daha sonra bu metodları çağırmak için main.sh'ta şöyle yaparız.
get_products
clean_products
make_index
test_index

Hiç yorum yok:

Yorum Gönder