Skip to main content
Solved

Correct syntax for SystemCaller?

  • January 23, 2024
  • 5 replies
  • 229 views

aron
Enthusiast
Forum|alt.badge.img+16

(This is a spin of question from https://community.safe.com/s/feed/0D5OO000004YH4O0AW, but I thought it made sense to rephrase the question)

 

I am trying to run a shell script from SystemCaller but for some weird reason I can not make it work. 

 

My command line is: 

cd "/Volumes/disc1/test_systemcaller/" && my_script.sh 25 5

The numbers at the end are parameters for the script.

 

The error I get from the log file is:

sh: my_script.sh: command not found

The file 'my_script.sh' is placed in the actual folder, so should be found.

If I test the file path by asking it to do something simple, eg mkdir, it will happily do so in the right place.

If I run the command from Terminal it works fine. 

 

I made a second script in the folder with a mkdir just for testing. While it works fine in Terminal, FME claims to know nothing about it.

 

Since system caller cant find the script file, even though it is in the folder, I guess that something might be wrong with my syntax? I'm on a Mac if that matters. 

Best answer by aron

And here is the final solution in case someone else runs into similar issues in the future. 

export PATH=/opt/homebrew/bin:$PATH && cd "/Volumes/disc1/test_systemcaller/" && ./my_script.sh 25 5

'export PATH=/opt/homebrew/bin:$PATH' was needed because the gdal programs called in the script could not be found otherwise. No problems running them without any path referencing from Terminal, but something goes astray within the SystemCaller.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

5 replies

hkingsbury
Celebrity
Forum|alt.badge.img+65
  • Celebrity
  • January 23, 2024

I'm taking a stab here that the script might not be executable...

you can make it executable by going to the dir and running. This might need to be done with sudo

chmod +x my_script.sh

Alternately, you could try

    cd "/Volumes/disc1/test_systemcaller/" && sh my_script.sh 25 5

or

    sh "/Volumes/disc1/test_systemcaller/my_script.sh" 25 5

 

I don't have an osx machine right in front of me atm to confirm (currently at work, personal machine is osx) hopefully one of these will work....

 


aron
Enthusiast
Forum|alt.badge.img+16
  • Author
  • Enthusiast
  • January 24, 2024

Thanks, you gave me some new ideas. I finally got it running with:

    cd "/Volumes/disc1/test_systemcaller/" && ./my_script.sh 25 5

'./' should not be needed, but it did. 


virtualcitymatt
Celebrity
Forum|alt.badge.img+47

Thanks, you gave me some new ideas. I finally got it running with:

    cd "/Volumes/disc1/test_systemcaller/" && ./my_script.sh 25 5

'./' should not be needed, but it did. 

Ahh yeah, the ol' "./" thing - nice


danilo_fme
Celebrity
Forum|alt.badge.img+52
  • Celebrity
  • January 25, 2024

I'm taking a stab here that the script might not be executable...

you can make it executable by going to the dir and running. This might need to be done with sudo

chmod +x my_script.sh

Alternately, you could try

    cd "/Volumes/disc1/test_systemcaller/" && sh my_script.sh 25 5

or

    sh "/Volumes/disc1/test_systemcaller/my_script.sh" 25 5

 

I don't have an osx machine right in front of me atm to confirm (currently at work, personal machine is osx) hopefully one of these will work....

 

Great solution !


aron
Enthusiast
Forum|alt.badge.img+16
  • Author
  • Enthusiast
  • Best Answer
  • January 25, 2024

And here is the final solution in case someone else runs into similar issues in the future. 

export PATH=/opt/homebrew/bin:$PATH && cd "/Volumes/disc1/test_systemcaller/" && ./my_script.sh 25 5

'export PATH=/opt/homebrew/bin:$PATH' was needed because the gdal programs called in the script could not be found otherwise. No problems running them without any path referencing from Terminal, but something goes astray within the SystemCaller.