using which in a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using which in a script
# 1  
Old 12-12-2010
using which in a script

I am trying to use which to set a local variable to hold where an app is installed.
Code:
InstallDir=which app.exe
echo $InstallDir

When I run "which app.exe" from the shell I get,
/cygdrive/c/Program Files/app 1.0.2/bin/app.exe

When I add "InstallDir=which app.exe" to my script, it just starts the app. Should I be doing something like "which app.exe > InstallDir"?

LMHmedchem
# 2  
Old 12-12-2010
Hi.

It "just starts" the app because:

Code:
 Set variable "InstallDir to 'which'"
         |
         |    Run "app.exe"
         |            |
---------------- -------
InstallDir=which app.exe

The syntax should be:
Code:
InstallDir=$(which app.exe)


Last edited by Scott; 12-12-2010 at 03:38 PM.. Reason: Removed dumb question :D
# 3  
Old 12-12-2010
Thanks, that works fine. I am using the cygwin version of the Bourne shell.

LMHmedchem
# 4  
Old 12-12-2010
I know, the "what OS, etc...." was a stupid question, so I removed it from my post Smilie
# 5  
Old 12-12-2010
I am still stuck a bit, and I am not sure what the problem is.

I am running,
Code:
#!/bin/bash

   InstallPath=$(which app.exe)
   ScriptLoc=$(pwd)
   
   echo -n "Enter the number of batches (default is 50): "
   read BATCHES
   # set batches to 50 if no value is entered
   if [ "$BATCHES" = "" ]; then
      BATCHES=50
   fi

   echo "starting batch"
   "$InstallPath" -nogui -ni -p "$ScriptLoc"/ANN/f0_BT_test_10-12-15.proj epochs=2500 batches=$BATCHES

This is meant to be an interactive script to run an app. It is also intented to be more or less independent of where the app is installed on a given version of windows, and also where the script is located.

The script is in a directory with,
test.sh
ANN/

To call the app, I an using "$InstallPath" with quotes because there may be spaces in the path. The app takes an argument -p which is the path to the project file that you want to run, which is ./ANN/f0_BT_test_10-12-15.proj.
At first I tried,
"$InstallPath" -nogui -ni -p ./ANN/f0_BT_test_10-12-15.proj epochs=2500 batches=$BATCHES

and got,
$ ***ERROR: File: ./ANN/f0_BT_test_10-12-15.proj could not
be opened for reading

I thought that there may be an issue with where the shell is, and changed to,
"$InstallPath" -nogui -ni -p "$ScriptLoc"/ANN/f0_BT_test_10-12-15.proj epochs=2500 batches=$BATCHES

and got,
$ ***ERROR: File: /cygdrive/c/ANN_winTest_cyg/ANN/f0_BT_test_10-12-15.proj could not
be opened for reading

This is the correct path, so it could be a permissions issue. If I do ls -l,
-rwx------+ 1 basic_user None 1412567 2010-12-10 11:44 f0_BT_test_10-12-15.proj

it looks like I own the file, so now I am confused, my typical state I guess.

I can post my test files and directory if that would help.

LMHmedchem
# 6  
Old 12-12-2010
I suspect app.exe is a windows application (or expects a windows path+file for it's -p argument.

In which case you will need to convert your path /cygdrive/c/ANN_winTest_cyg/ANN/f0_BT_test_10-12-15.proj to a windows path C:\ANN_winTest_cyg\ANN\f0_BT_test_10-12-15.proj eg:

Code:
WINPATH=$(cygpath -w "$ScriptLoc"/ANN/f0_BT_test_10-12-15.proj)
"$InstallPath" -nogui -ni -p  "$WINPATH" epochs=2500 batches=$BATCHES


Last edited by Chubler_XL; 12-12-2010 at 06:32 PM..
# 7  
Old 12-12-2010
What's the absolute path of f0_BT_test_10-12-15.proj?
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question