Pada shell Linux, apa yang seharusnya dilakukan oleh echo $ 1?


11

Saya melakukan echo $1, itu mencetak apa shell login default yang digunakan.

Tapi untuk echo $2selanjutnya, yang saya dapatkan hanyalah baris baru. Mengapa demikian?

Jawaban:


21

$ 1 (atau $ 2, $ 3 ...) seharusnya menjadi argumen yang diberikan kepada beberapa skrip.

Berikut ini contoh skrip:

#!/bin/bash

echo "\$1 is now $1"
echo "\$2 is now $2"
echo "\$3 is now $3"

Dan contoh outputnya

jaba@lappy:/tmp$ ./example.sh 
$1 is now 
$2 is now 
$3 is now 
jaba@lappy:/tmp$ ./example.sh 1 2 3
$1 is now 1
$2 is now 2
$3 is now 3

1
Dan $ 0 adalah nama skrip yang dieksekusi, analog dengan argv.
Benjamin Bannier

4

$ 1 adalah argumen yang disetujui untuk skrip shell.

Misalkan, Anda lari

./myscript.sh hello 123 

kemudian

$ 1 akan menjadi halo

$ 2 akan menjadi 123


3

Dalam kasus Anda $ 1 mencetak shell login default yang digunakan karena argumen ini diteruskan ke skrip yang menjalankan shell login Anda. Tetapi jika Anda akan menulis dan menjalankan skrip Anda sendiri di sesi saat ini, $ 1, $ 2, ... akan menjadi parameter yang Anda kirim ke skrip Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.