tìm cách nâng cấp ma thuật bash của tôi. giúp giải mã lệnh này: bash -s ổn định


18

ok vì vậy tôi đang làm việc thông qua một hướng dẫn để cài đặt rvm trên máy mac của tôi. Lệnh bash để nhận rvm qua curl là

curl -L https://get.rvm.io | bash -s stable

Tôi hiểu lệnh curl của nửa đầu tại vị trí rvm.io và kết quả được chuyển sang lệnh bash tiếp theo, nhưng tôi không chắc lệnh đó đang làm gì. Những câu hỏi của tôi:

-s: tôi luôn bối rối về cách đề cập đến những điều này. Đây là loại điều gì: một đối số dòng lệnh? một công tắc? thứ gì khác?

-s: nó đang làm gì vậy? Tôi đã googled khoảng nửa giờ nhưng không biết làm thế nào để tham khảo nó làm cho nó khó khăn.

ổn định: đây là cái gì?

tl; dr: giúp tôi giải mã lệnh bash -s ổn định

Đối với những người trả lời bài đăng này, tôi mong muốn một ngày nào đó sẽ biết đọc biết viết như bạn. cho đến lúc đó, opstards như tôi cảm ơn bạn đã giúp đỡ!

Câu trả lời:


22

Các -sđiều được gọi là một lựa chọn. Trong trường hợp của bạn, điều đó có nghĩa là bashsẽ được thực thi với tập tham số vị trí đầu tiên . Nếu bạn muốn chơi với điều đó:

$ bash -s let us set some positional parameters just for fun
$ # doh? nothing seemed to happen
$ # In fact here we're in a new instance of bash with the parameters set. Look:
$ echo "$3"
set
$ echo "$5"
positional
$ # Get it?
$ printf "%s\n" "$@"
let
us
set
some
positional
parameters
just
for
fun
$ # Amazing!
$ # Let's get out of here!
$ exit
$ # (back to previous bash session)
$

Trong trường hợp của bạn, tập lệnh được tải xuống qua curl được gửi đến bash(vì vậy nó sẽ được thực thi) và sẽ có tham số vị trí đầu tiên được đặt thành stable.

Nếu bạn bị mắc kẹt với các tùy chọn, bạn không biết họ làm gì: man bashvà sau đó nhập /-scái này sẽ ít nhiều đưa bạn đến nơi -stùy chọn được mô tả. Hoặc nếu bạn muốn biết -utùy chọn này dùng để làm gì sed: man sedvà sau đó nhập /-u.

Hi vọng điêu nay co ich!


A là gì "tham số vị trí?"
MikeSchinkel

2
@MikeSchinkel: xem tài liệu tham khảo . Các tham số vị trí là các biến được biểu thị bằng các chữ số, ví dụ $1, $8. Bạn không thể đặt chúng trực tiếp. Chúng được đặt tự động khi bạn gọi một chương trình hoặc một chức năng. Ví dụ với một hàm : fun() { echo "Parameter 2 is $2"; }. Sau đó thử fun hello worldfun "hello gniourf" "how are you?".
gniourf_gniourf

Được rồi, cảm ơn. Nhưng vẫn bối rối; Điều này khác với việc không sử dụng -stùy chọn như thế nào?
MikeSchinkel

1
@MikeSchinkel Không có -stùy chọn: bash stablesẽ tìm tệp stable và cố gắng thực thi nó. Với -stùy chọn :: bash -s stablesẽ thực thi những gì xuất hiện trên stdin của nó, với stablethiết lập là $1.
gniourf_gniourf
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.