Dưới đây là mã tôi đã thực hiện trong thiết bị đầu cuối
[root@idm ~]# x="$(date +%d%m%y)"
[root@idm ~]# echo $x
270217
[root@idm ~]# echo ${#x}
6
Ai đó có thể giúp tôi hiểu tại sao đầu ra là 6
? #
Về cơ bản là làm gì với biến?
Dưới đây là mã tôi đã thực hiện trong thiết bị đầu cuối
[root@idm ~]# x="$(date +%d%m%y)"
[root@idm ~]# echo $x
270217
[root@idm ~]# echo ${#x}
6
Ai đó có thể giúp tôi hiểu tại sao đầu ra là 6
? #
Về cơ bản là làm gì với biến?
Câu trả lời:
Đó là một mở rộng tham số trả về độ dài của tham số hoặc số phần tử trong một mảng hoặc số lượng tham số vị trí.
Xin vui lòng đọc hướng dẫn sử dụng vỏ của bạn. Sau đây là từ bash
hướng dẫn:
${#parameter}
Độ dài tính bằng giá trị của
parameter
được thay thế . Nếuparameter
là*
hoặc@
, giá trị được thay thế là số lượng tham số vị trí. Nếuparameter
là một tên mảng được đăng ký bởi*
hoặc@
, giá trị được thay thế là số phần tử trong mảng. Nếuparameter
là một tên mảng được lập chỉ mục được ghi bởi một số âm, thì số đó được hiểu là tương đối với một lớn hơn chỉ số tối đa của tham số, vì vậy các chỉ số phủ định đếm ngược từ cuối mảng và chỉ số -1 tham chiếu đến phần tử cuối cùng .
Ngoài ra, xin vui lòng không tạo thói quen làm việc trong một vỏ gốc tương tác. Nó nguy hiểm và liều lĩnh nhất. Sử dụng một sudo
cách tiết kiệm và chỉ trong các tình huống đòi hỏi đặc quyền nâng cao. Chơi xung quanh với bash
là một cái gì đó bạn chắc chắn có thể làm như một người dùng không root bình thường.
Trong vài năm qua, tôi chỉ sử dụng một vỏ gốc tương tác để tự thêm một người dùng. Đó là một công việc dài 2 phút và sau đó tôi không bao giờ cần phải thấy #
lời nhắc nữa trên máy đó.
Các #
nhà điều hành trả về chiều dài của một biến. Trong trường hợp của bạn, x
chiều dài thay đổi là sáu.
Xin vui lòng xem Parameter thay thế để biết thêm thông tin.