Trên hệ vỏ Linux, echo $ 1 phải làm gì?


11

Tôi làm một echo $1, nó in ra cái vỏ đăng nhập mặc định được sử dụng là gì.

Nhưng về echo $2sau, tất cả những gì tôi nhận được là một dòng mới. Tại sao vậy?

Câu trả lời:


21

$ 1 (hoặc $ 2, $ 3 ...) được coi là đối số được đưa ra cho một số tập lệnh.

Đây là một kịch bản ví dụ:

#!/bin/bash

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

Và đầu ra ví dụ

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
Và $ 0 là tên của scipt đang được thực thi, tương tự như argv.
Benjamin Bannier

4

$ 1 là đối số được truyền cho shell script.

Giả sử, bạn chạy

./myscript.sh hello 123 

sau đó

$ 1 sẽ được chào

$ 2 sẽ là 123


3

Trong trường hợp của bạn, $ 1 in vỏ đăng nhập mặc định được sử dụng vì đối số này được truyền cho tập lệnh chạy shell đăng nhập của bạn. Nhưng nếu bạn sẽ viết và chạy tập lệnh của riêng bạn trong phiên hiện tại, $ 1, $ 2, ... sẽ là các tham số mà bạn gửi đến tập lệnh của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.