Buat skrip Anda sendiri menggunakan bash

Belajar Linux

Terlepas dari distribusi Linux yang kami gunakan, ―tidak diragukan lagi bahwa favorit saya adalah Ubuntu― segera setelah kami menggunakan sistem ini, pasti kebutuhan otomatisasi. Yaitu: ciptakan perintah sendiri yang melakukan perintah tertentu dengan cara yang dipersonalisasi. Kebutuhan ini dapat disebabkan oleh sebab-sebab tertentu:

  • Sederhanakan sintaks dari perintah yang biasanya kami jalankan.
  • Ambil tindakan yang mencakup semua kebutuhan yang tidak diramalkan dalam sistem operasional.
  • Urutan urutan yang kami ulangi dengan tekun.

Meskipun skrip bash dapat dijalankan di / dari direktori mana pun, biasanya itu buat direktori untuk menampung skrip ini. Dalam kasus saya:

$ mkdir /home/pedro/.bin

saya percaya ini direktori (disembunyikan dengan memimpin titik di depan nama) untuk menampung semua skrip yang saya gunakan di sana. Bahwa nama direktori disembunyikan tidak memiliki arti lain selain - kecuali secara eksplisit ditentukan lain - tidak akan muncul saat melihat / home / pedro dari penampil file dalam mode grafis.

Sekarang kamu harus beri tahu Linux bahwa itu juga harus mencari di sana (/home/pedro/.bin) perintah yang dijalankan dari terminal.

$ PATH=$PATH;/home/pedro/.bin

Dengan cara ini sistem akan mencari pesanan kita di sana sampai kita menutup sesi. Untuk menjadikan asosiasi ini permanen:

$ sudo nano /etc/environment

dan kami menambahkan

:/home/pedro/.bin

di akhir baris PATH, sangat penting untuk tidak melupakan titik dua sebelum alamat direktori yang kita masukkan, karena ini adalah mekanisme penjumlahan.

Skrip langkah demi langkah pertama kami

Kami membuat file kami, seperti ini dalam kasus saya:

$ touch ~/.bin/donde

Dan untuk mengeditnya, Anda dapat menggunakan editor pilihan Anda atau mengikuti indikasi ini:

$ gedit ~/.bin/donde &

Dan kami menambahkan konten berikut:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

Analisis skrip

Saluran telepon pertama kita «peristiwa»(#! / Usr / bin / env bash) minta Linux untuk melaporkan dimana bash shell berada dan apa yang terjadi selanjutnya dieksekusi sesuai dengan persyaratan bash. Pencegahan ini akan lebih mudah untuk memastikannya skrip kami berfungsi pada instalasi apa pun. Kemungkinan lain peristiwa dia tertawa:

#!/bin/bash

Perbedaan di antara mereka bisa sangat aneh, dan saya akan menjelaskannya. Yang terakhir ini Saya berasumsi bahwa dalam sistem kami bash shell ada di alamat / bin / bash. Namun, di mana saya mengusulkan dalam naskah Saya kira saya tidak tahu di mana itu juru bahasa bash. Saya meminta sistem untuk memberikan alamat itu.

Baris ketiga: Seperti yang Anda lihat, baris kedua adalah jika. Untuk bash karakter «$#« berisi jumlah parameter yang kita teruskan dari baris perintah. Oleh karena itu, »if [$ # -lt 1];» secara harfiah berarti "jika jumlah parameter kurang dari 1".

Baris keempat: Kemudian (secara harfiah menerjemahkan dari bahasa Inggris: kemudian), di sini diindikasikan bahwa apa yang akan datang selanjutnya akan dieksekusi saat evaluasi kondisi if jadilah benar: dengan kata lain, jumlah parameter kurang dari 1, yaitu nol.

Baris kelima: Jika kita menjalankan skrip kita tanpa parameter apa pun, kita akan menampilkan di terminal «Anda harus memberikan parameter».

Baris keenam: Menunjukkan bahwa yang berikut ini akan dijalankan padahal kondisi yang kami nyatakan tidak benar.

Baris ketujuh: Se jalankan perintah «dimana« disertai dengan konten yang telah kami sampaikan parameter pertama.

Baris kedelapan: dengan «fi»Menunjukkan bahwa blok berakhir if.

Menguji Script kami

Hal ini penting tambahkan izin menulis ke naskah:

$ chmod -x ~/.bin/donde

Tanpa ini, kesalahan "izin ditolak" akan muncul.. Setelah itu, kita bisa menjalankan skrip kita.

$ donde php

Ini harus menunjukkan kepada kita lokasi binari php, file sumbernya, dan halaman manual. Sesuatu seperti itu:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

Rekap

  • Kami mengaktifkan a ".bin" untuk menampung skrip kami.
  • Kami menyediakan informasi ke Linux untuk memasukkan direktori ini dalam pencarian perintahnya.
  • Kami membuat skrip kami.
  • Perbedaan antara berbeda peristiwa.
  • Penggunaan jumlah parameter yang dikirimkan dengan $ #.
  • Penggunaan parameter pertama dengan $1.

Saya berharap dan berharap script ini bermanfaat untuk Anda.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   miguel dijo

    Sangat bagus dan dijelaskan dengan baik, tetapi apa yang dimaksud dengan parameter?

    1.    Gambar placeholder Pedro Ruiz Hidalgo dijo

      Terima kasih Miguel!

      Saya memahami parameter semua informasi pelengkap yang dipasok ke program, fungsi atau sistem. Karena ini bisa merepotkan, izinkan saya menjawab Anda dengan beberapa contoh.

      Di perintah linux untuk menyalin file a.txt ke file b.txt, kami akan menulis yang berikut ini:

      $cp a.txt b.txt

      Program cp disini menerima dua parameter yaitu nama dari dua file, yang pertama (harus ada) a.txt dan yang kedua b.txt.

      Contoh lain: Jika Anda mengirim untuk mencetak dari konsol dengan perintah

      $ lp file.pdf

      Dalam hal ini "file.pdf" adalah parameter untuk program lp.

      Saya harap saya telah memuaskan keraguan Anda.

      salam

  2.   miguel dijo

    Komentar saya tidak keluar, ini adalah kurangnya rasa hormat, saya tidak kembali ke forum ini.

    1.    Gambar placeholder Pedro Ruiz Hidalgo dijo

      Saya tidak tahu apa yang telah terjadi, bagaimanapun juga yang ini telah diterbitkan.

      Salam.