ถ้าเราดูตัวอย่างต่อไปนี้:
# testing(){ echo hello;}
# testing
hello
# echo $(testing)
hello
# echo testing >script
# ./script
./script: line 1: testing: command not found
# source ./script
hello
# export -f testing
# ./script
hello
ปรากฎว่าbash
ฟังก์ชั่นจะต้องส่งออกเฉพาะในกรณีที่คุณต้องการใช้ในสคริปต์ที่ไม่ได้มา ฉันลองใช้หลายระดับของ subshells พฤติกรรมเหมือนกัน บางคนสามารถยืนยันสิ่งนี้ได้เพราะฉันพบว่ามันขัดแย้งกับการอ้างว่าตัวแปรท้องถิ่นไม่มีอยู่ใน subshells