Cách gọi một chức năng bên trong một chức năng khác


12

Tôi đang làm việc thực sự trong một tập lệnh shell để theo dõi tài nguyên của máy chủ. Tôi có một chức năng và tôi muốn biết: làm thế nào tôi có thể gọi một chức năng thứ hai bên trong chức năng chính?

Thí dụ:

funct mainfunct(){

echo "Text to show here" **$secondfunct**

}

funct secondfunct(){
commands
}

Viết tên hàm thứ nhất trong thân hàm thứ hai?
123

1
Cái vỏ đó là cái gì? Tôi không nhận ra phần "func".
Jeff Schaller

Câu trả lời:


14

Trong ksh hoặc bash,

mainfunct() {
  echo "Text to show here" $(secondfunct)
}

secondfunct() {
  echo commands here
}

mainfunct

Tạo các mục sau:

Văn bản để hiển thị các lệnh ở đây


1
Cần lưu ý rằng $(secondfunct)ở đây sẽ mở rộng thành các từ kết quả từ toán tử chia + toàn cầu được áp dụng cho đầu ra tiêu chuẩn secondfunctcủa tất cả các ký tự dòng mới.
Stéphane Chazelas

1
Điều đó không giới hạn bashksh. Điều đó sẽ hoạt động trong bất kỳ vỏ POSIX nào (và một số không phải POSIX như tro hoặc zsh (mặc dù zsh sẽ không làm phần toàn cầu và không bị nghẹt trên các byte NUL))
Stéphane Chazelas

4
android@localhost:~/test$ cat fun.sh
function myname {
  echo "my name is raja"
}

function call {
  myname
}
call

Đây là tất cả những gì tôi phải làm để gọi các hàm khác được khai báo trong .bashrctệp của mình
takanuva15
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.