# Call external function

**URL:** <https://community.unix.com/t/call-external-function/285638>\
**Category:** UNIX for Dummies Questions & Answers\
**Created:** [April 1, 2011, 1:06pm UTC](https://community.unix.com/t/call-external-function/285638 "2011-04-01T13:06:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![chrisjones](https://community.unix.com/letter_avatar/chrisjones/32/6_22734026db12803ebb3e059622ac3534.png) [@chrisjones](https://community.unix.com/u/chrisjones)\
**Post date:** [April 1, 2011, 1:06pm UTC](https://community.unix.com/t/call-external-function/285638/1 "2011-04-01T13:06:37Z")

</div>

Is it possible to call a function from another script?

Thanks

---

<div class="post-metadata">

**Author:** ![jim\_mcnamara](https://community.unix.com/letter_avatar/jim_mcnamara/32/6_22734026db12803ebb3e059622ac3534.png) [@jim\_mcnamara](https://community.unix.com/u/jim_mcnamara)\
**Post date:** [April 1, 2011, 1:08pm UTC](https://community.unix.com/t/call-external-function/285638/2 "2011-04-01T13:08:53Z")

</div>

Sort of.

```nohighlight
# file1
foo()
{
    echo "foo was called"
}

```

```nohighlight
#file2  
# source file1
. file1
# call the any function in file1
foo

```

---

<div class="post-metadata">

**Author:** ![chrisjones](https://community.unix.com/letter_avatar/chrisjones/32/6_22734026db12803ebb3e059622ac3534.png) [@chrisjones](https://community.unix.com/u/chrisjones)\
**Post date:** [April 1, 2011, 1:13pm UTC](https://community.unix.com/t/call-external-function/285638/3 "2011-04-01T13:13:36Z")

</div>

Great thanks very much

---

<div class="post-metadata">

**Author:** ![chrisjones](https://community.unix.com/letter_avatar/chrisjones/32/6_22734026db12803ebb3e059622ac3534.png) [@chrisjones](https://community.unix.com/u/chrisjones)\
**Post date:** [April 8, 2011, 7:21am UTC](https://community.unix.com/t/call-external-function/285638/4 "2011-04-08T07:21:41Z")

</div>

Lets say I have two scripts A and B.

Script A is using a function in B

So I use . scriptB to get access to all functions.

This works fine if I run scriptA in directory that scriptB is in, but it does not seem to work if I run it in another directory?

---

<div class="post-metadata">

**Author:** ![jim\_mcnamara](https://community.unix.com/letter_avatar/jim_mcnamara/32/6_22734026db12803ebb3e059622ac3534.png) [@jim\_mcnamara](https://community.unix.com/u/jim_mcnamara)\
**Post date:** [April 8, 2011, 7:28am UTC](https://community.unix.com/t/call-external-function/285638/5 "2011-04-08T07:28:55Z")

</div>

create an absolute path. assume scriptB live in /home/chrisj

```nohighlight
. /home/chrisj/scriptB

```

---

<div class="post-metadata">

**Author:** ![cero](https://community.unix.com/letter_avatar/cero/32/6_22734026db12803ebb3e059622ac3534.png) [@cero](https://community.unix.com/u/cero)\
**Post date:** [April 8, 2011, 7:32am UTC](https://community.unix.com/t/call-external-function/285638/6 "2011-04-08T07:32:00Z")

</div>

Source scriptB using its full pathname.

```nohighlight
. /path/to/scriptB

```

---

<div class="post-metadata">

**Author:** ![chrisjones](https://community.unix.com/letter_avatar/chrisjones/32/6_22734026db12803ebb3e059622ac3534.png) [@chrisjones](https://community.unix.com/u/chrisjones)\
**Post date:** [April 8, 2011, 8:41am UTC](https://community.unix.com/t/call-external-function/285638/7 "2011-04-08T08:41:16Z")

</div>

Thanks stating full path works fine
