Latest web development tutorials

Shell? Variable

Variabel shell

Ketika anda mendefinisikan suatu variabel, nama variabel tanpa tanda dolar ($, variabel bahasa PHP diperlukan), seperti:

your_name="w3big.com"

Perhatikan bahwa tidak ada ruang antara nama variabel dan tanda sama, yang mungkin asing bagi Anda dan semua bahasa pemrograman yang tidak sama. Sementara itu, nama variabel harus mengikuti aturan penamaan ini:

  • Karakter pertama harus berupa huruf (az, AZ).
  • Tidak ada ruang, menggunakan garis bawah (_).
  • Anda tidak dapat menggunakan tanda baca.
  • Anda tidak dapat menggunakan bash kata kunci (bantuan perintah untuk melihat kata kunci milik tersedia).

Selain eksplisit tugas langsung, Anda dapat juga memberikan nilai pada variabel dengan pernyataan seperti:

for file in `ls /etc`

Di atas pernyataan itu nama file / etc direktori dari peredaran.


menggunakan Variabel

Menggunakan variabel didefinisikan, asalkan nama variabel diawali dengan tanda dolar, seperti ini:

your_name="qinjx"
echo $your_name
echo ${your_name}

nama variabel di luar kurung kurawal adalah opsional, ditambah tanpa hak semua, menambahkan kawat gigi untuk membantu menjelaskan variabel identifikasi batas, seperti kasus berikut:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

Jika Anda tidak memberikan variabel keterampilan ditambah kawat gigi, ditulis echo "Saya baik di $ skillScript", penafsir akan menempatkan $ skillScript sebagai variabel (nilai kosong), eksekusi kode bukanlah hasil yang kita harapkan sama lagi.

Beritahu semua variabel kawat gigi, itu adalah praktek pemrograman yang baik.

variabel didefinisikan, dapat ditetapkan kembali, seperti:

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

Menulis adalah legal, tetapi perhatikan bahwa ketika tugas kedua tidak bisa menulis $ your_name = "Alibaba", menggunakan variabel ketika ditambahkan ke tanda dolar ($).

Baca-satunya variabel

Gunakan perintah variabel readonly dapat didefinisikan sebagai baca-satunya variabel, nilai read-only variabel tidak dapat diubah.

Contoh berikut mencoba untuk mengubah variabel read-only, hasil yang diberikan:

#!/bin/bash
myUrl="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.w3big.com"

Jalankan script dengan hasil sebagai berikut:

/bin/sh: NAME: This variable is read only.

Hapus variabel

Gunakan perintah unset untuk menghapus variabel. sintaks:

unset variable_name

Variabel tidak dapat digunakan kembali setelah dihapus. perintah unset tidak dapat menghapus variabel read-only.

contoh

#!/bin/sh
myUrl="http://www.w3big.com"
unset myUrl
echo $myUrl

Contoh pelaksanaan atas tidak akan memiliki output.

Jenis variabel

Ketika Anda menjalankan shell, akan ada tiga parameter secara simultan:

  • 1) Variabel lokal Variabel lokal didefinisikan dalam naskah atau perintah hanya berlaku di shell contoh saat, program shell startup lain tidak dapat mengakses variabel lokal.
  • 2) variabel lingkungan semua program, termasuk program shell mulai, dapat mengakses variabel lingkungan, beberapa aplikasi membutuhkan variabel lingkungan untuk memastikan operasi normal mereka. Bila perlu, script shell juga dapat mendefinisikan variabel lingkungan.
  • 3) variabel shell shell variabel adalah variabel khusus yang ditetapkan oleh program shell. shell variabel bagian dari variabel lingkungan, beberapa variabel lokal untuk memastikan operasi normal dari shell

shell tali

pemrograman String shell adalah tipe data yang paling umum dan berguna (kecuali angka dan string, juga tidak memiliki jenis lain berguna), string dapat tertutup dalam tanda kutip tunggal, tanda kutip ganda juga dapat digunakan, atau mungkin tidak dalam tanda kutip. Perbedaan antara tanda kutip tunggal dan ganda dengan PHP mirip.

tanda petik tunggal

str='this is a string'

Single-dikutip string pembatasan:

  • Setiap karakter dalam tanda kutip tunggal adalah output sebagai tanda kutip tunggal dalam variabel string tidak valid;
  • string tunggal dikutip tidak dapat muncul dalam kutipan tunggal (menggunakan tanda kutip tunggal setelah karakter melarikan diri atau).

tanda kutip ganda

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

Ganda mengutip keuntungan:

  • tanda kutip ganda dapat memiliki variabel
  • tanda kutip ganda dapat muncul karakter escape

String concatenation

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

Dapatkan panjang string

string="abcd"
echo ${#string} #输出 4

ekstrak substring

Berikut contoh dari dua string karakter pertama mulai menangkap empat karakter:

string="w3big is a great site"
echo ${string:1:4} # 输出 unoo

Cari substring

Menemukan karakter "i atau s" Posisi:

string="w3big is a great company"
echo `expr index "$string" is`  # 输出 8

Catatan: di atas script "` "anti-kutipan daripada tanda kutip tunggal" ' "Jangan tertipu, oh.


shell Array

pesta mendukung array satu dimensi (tidak mendukung array multidimensi), dan tidak menentukan ukuran array.

Mirip dengan bahasa C, subscript dari elemen array dari nomor 0 mulai. Akan array elemen untuk mengambil keuntungan dari subscript itu, subscript mungkin integer atau ekspresi aritmatika yang nilainya harus lebih besar dari atau sama dengan 0.

mendefinisikan array

Di Shell, menggunakan tanda kurung untuk menunjukkan array, elemen array dengan "ruang" simbol dipisahkan. Bentuk umum dari array didefinisikan sebagai berikut:

数组名=(值1 值2 ... 值n)

Sebagai contoh:

array_name=(value0 value1 value2 value3)

atau

array_name=(
value0
value1
value2
value3
)

Anda juga dapat menentukan secara terpisah untuk masing-masing komponen dari array:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

Anda tidak dapat menggunakan indeks terus menerus, dan tidak ada batasan di bawah kisaran target.

Baca Array

Format umum membaca nilai elemen array:

${数组名[下标]}

Sebagai contoh:

valuen=${array_name[n]}

Gunakan simbol @ bisa mendapatkan array dari semua elemen, seperti:

echo ${array_name[@]}

Dapatkan panjang array

Mendapat array panjang panjang string dan mendapatkan cara yang sama, misalnya:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

shell Catatan

Sejalan dengan "#" pada awal komentar, akan diabaikan oleh interpreter.

sh tidak ada multi-line komentar, setiap baris hanya dapat menambahkan tanda #. Hanya seperti ini:

#--------------------------------------------
# 这是一个注释
# author:本教程
# site:www.w3big.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

Jika proses pembangunan, mengalami potongan besar kode perlu komentar sementara setelah beberapa saat dan tanda komentar, bagaimana melakukannya?

Setiap baris menambahkan simbol # terlalu melelahkan, Anda dapat menaruh beberapa kode yang akan dijelaskan dengan sepasang kurung keriting, yang didefinisikan sebagai fungsi, tidak ada tempat untuk memanggil fungsi ini, kode ini tidak akan dieksekusi, dan mencapai sebagai anotasi efek.