Passing variables to a shell script
Hello all,
I have an applescript that is passing two variables to a shell script. Both variables are being passed, but the script isn't running as I would expect and I can't figure out what it's doing and why.
Here is the applescript:
delay 5
tell me to activate
display dialog "Please enter the following information."
property RoomNumber : ""
display dialog "Enter the room number and building (ie 1312CAC):" default answer RoomNumber
set the RoomNumber to text returned of the result
property StationNumber : ""
display dialog "Enter the Station Number:" default answer StationNumber
set the StationNumber to text returned of the result
do shell script ("echo " & RoomNumber & StationNumber & " | /Users/labadmin/Desktop/labbuild.sh")
and here is the shell script
#!/bin/sh
RoomNumber="$1"
StationNumber="$2"
compname=($RoomNumber$StationNumber)
scutil --set ComputerName $compname
scutil --set LocalHostName $compname
scutil --set HostName $compname
echo "Done setting the computer name"
The only name it sets is the ComputerName. LocalHost is blank and hostname is set to Localhost
Can someone see what I'm doing wrong here?
Thank you in advanced.
The line
do shell script ("echo " & RoomNumber & StationNumber & " | /Users/labadmin/Desktop/labbuild.sh")
should be
do shell script ("/Users/labadmin/Desktop/labbuild.sh " & quoted form of RoomNumber & " " & quoted form of StationNumber)
In your original code, you are using echo to pass the variables to stdin of the script instead of as command-line parameters. You also don't handle the case where a value is left blank.
Similar Messages
-
Is it possible to pass a variable from a shell script back to an Automator action?
Is it possible to pass a variable from a shell script back to an Automator action?
For instance, if I assign a value of foo to $var1 in my shell script how would I retrieve/pass that value in the next Automator action. I see that there is a variable called "Shell Script" but I can't any information on how to use it.red_menace,
Thanks but I still don't understand how to pass a single value that was set in the UNIX scipt back to Automator has a variable. Take the example below, I write 4 varables to STDOUT and all 4 are stored in a variable named "storage". How do I assign 1 of these values to the Automator "storage" variable? For instance if I wanted to assign the value of $var2 to "storage" , how would I do that? -
Reading variables from a shell script
i was wondering if it is possible to enter variables from a shell script that an sql file can use:
ex:
shell script file
#!/bin/ksh
stty -echo
read pwd?"Enter password for user: "
echo
stty echo
read var?"Please enter value for variable: "
echo
$ORACLE_HOME/bin/sqlplus user/$pwd @TEST.sql
sql file TEST.sql
set serveroutput on
set verify off
spool out.log
update table set parameter_value = '$var' where parameter_name = 'X';
commit;
exit;
spool off;
i tried that and it seems its updating my table with "var" and not what the user entered that is the bind variable $var
am i missing something?if user hits enter (which means null) can the program
not end and ask the user to enter another value?Try this way :
while :
do
echo -n "Please enter value for variable: "
read VAR
if [ "$VAR" ]; then
break
else
continue
fi
done -
Pass multiple Automator variables to Run Shell Script?
I have two Automator variables I'd like to pass to Run Shell Script. I'm missing something obvious, but how is this done?
Thanks in advancei don't know a nice way to do it but in general any input passed to a shell script will be stored in $@ if input is passed as arguments.
in particular, if you stack two "get value of variable actions" one after another and follow it by "run shell script" both variables will be stored in $@ as a list. just try it out with the default
for f in "$@"
do
echo "$f"
done
You'll see that both variables will be echoed. -
Error produced when trying to pass variables to a Matlab script
For some reason, LabVIEW produces an Error 1047 (Unable to pass variable to the script server) whenever I create an input variable to a Matlab code block.
Outputs work fine (for example, connecting an output "a" to a Matlab code block that says "a=rand(50)" correctly produces a 50x50 array of random numbers that can be displayed in LabVIEW). However, creating any kind of input node, whether or not the associated variable is mentioned in the MATLAB script, brings up an error 1047.
Any ideas what could be causing this? I'm using LabVIEW 7.0 and MATLAB 7 (R14). I've read the article
>here and that's not the problem, and I've also updated my matscript.dll to the latest version, 7.0.0.2, which also made no difference.For what its worth,
I work in a company with a lot of Matlab users, and I,m programming in Labview and Matlab.
When I create a testrig measurement I always have to convert data into Malab format, so I used the script server a lot... exept we have a limited pool of Matlab
licenses so my work was halted whenever the licences where gone.
So I wrote a Write2Matlab vi.
This vi can log data from a measurement and write it in a Matlab readable file format (Matlab6 R12).
After logging you can append more data. It works with(Double,Single,Int32,Int16,U16,U8,String) matrix see for yourself in an example (Write2matlab_test.vi).
Perhaps this is an alternative solution for your problem.
Please send me a reply if you find it usefull.
John
Attachments:
Write2Matlab.llb 1145 KB -
Passing variables to a SQL script within GC
Does anyone know if it is possible to pass in a variable to a SQL script job within Grid Control? I don't see that I can but I wanted to ask a larger group before cloing the loop on this.
For example, I have a few different databases which contain schemas which contain date-range daily partitioned tables. I have a single code block which normally accepts the table_owner as a variable then loops through to analyze the current day partition. I'd love for OEM to be able to have the job submitted to different database targets whilst passing in a different schema name.
Thank you in advance!This can be done in two steps, but first create a table containing 1 field in all the target databases (something like table_owner) you want to analyze. Before running the analyze script change in all the to be analyzed databases the table_owner (as a job?). Then run the analyze script that contains a statement that first reads the table_owner and use this table_owner as the variable you want.
Even more simple would be to use a database link from the to be analyzed db's to a central db so you only have to change the table_owner in one table.
Eric -
Pass in date from shell script to java program
Hi,
I need to pass in some parameter to my java program.
eg 'java SomeProgram yyyy mm dd hh mm ss'
How do i use the shell script to generate the valeus for the year, mth day etc?
The program is running once everyday.
I tried $argu0 = `date+%y`
java SomeProgram $argu0
but not working... thanks for your help!Then, why would you want to use 'date' to provide
'now' to a Java program when you could just use new
java.util.Date() which probably makes the same call
as the Unix 'date' command?That works until you need to use a date other than 'now.'
public static final String ISO_DATE = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
SimpleDateFormat sdf = (SimpleDateFormat) SimpleDateFormat
.getDateTimeInstance();
sdf.applyPattern(ISO_DATE);
try {
Date d = sdf.parse(args[0]);
// rest of code here
} catch (ParseException e) {
// handle exception
}Users will have to enclose there input with quotes otherwise the JVM will consider their input as two parameters, or you can change the pattern to include a character between dd and HH. -
Passing long string to shell script from java
I am trying to passa a long string to a shell process through java,
call is like
Runtime rtime = Runtime.getRuntime();
String callAndArgs[] = {"/apps/jetty4/jstest/jstest.sh",jarCo,queue,text};
Process child = rtime.exec(callAndArgs);
here the string text is :
|HEADER|JAR933|[email protected]|290001|OL0006528|WIN4015444|SHAFT_FORGING|1.0|Baan EDM|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|290001|WIN4015444|00||||2|SHAFT FORGING|9|AXELSMIDE|3|ACHSE SCHMIEDEST�CK|4|ARBRE FORG�|f|AKSELITAOS|||||||||||||||||||||||No||Approved|41.0|Mechanic|Yes|pc||WIN4015444|EL20|Purchased|Metric||0|20051120|||||Released||||||||||||||||No||||||||||||||||||||||||||||||||
Now i use this string in shell script to pass as an argument to other class. But the string gets truncated.
How do i solve this?It appears that your os is truncating the data - Java's not involved.
Maybe write the data to a file and then read it into the external program some way. -
Passing parameters into a shell script through alias Names ????
I have two alias names ord and dev. And the content of them are as follows.
alias ord
ord='cd ${ORDER}/bin; export APPL_NAME=order; . SetupAppl order'
alias dev
dev='cd ${APPL_ROOT}/bin; export APPL_ENV=dev; . SetupEnv dev'
Alias ord calls a shell script called SetupAppl. Alias dev calls a shell script called SetupEnv.
I am trying to pass a parameter when calling the alias name dev, something like dev WEST. And I
want to read that parameter inside the shell script SetupEnv.
The way I want to execute them, first run the alias ord and then the alias dev. But, when I try
to read the parameter in SetupEnv by $1 it is showing the value of the parameter passed to SetupAppl
ie order and not WEST.
Is there any way to read the value (WEST) passed as a parameter when executing the alias name.
example : dev WEST and reading the value WEST inside SetupEnv
The reason I am executing those scripts (SetupAppl and SetupEnv) with dot(.) in the front is because
those scripts have some export statements which needs to exported to the environment.
Any help on this is highly apprecaitedHi everybody,
I posted same question earlier for UNIX/shell script and rec'd one response. Thanks to Bob.
But the requirement has been changed and now my mgr wants the same task using PL/SQL. Could somebody help me ?
Question again....
I am working on a task which gets report on every remote database.
I created a small database: ‘REPORTS_DB’ and I created 6 'sql' scripts on that database. While executing the first script, it calls the other 5 different 'sql' scripts. All these 5 sql scripts use a '@db_link' (hard coded) and gets that database's report to the database: REPORT_DB.
It is working well. But,
We have 42 databases and I have to get reports of all the 42 databases. Since it is not efficient to create 42 sets of sql scripts, I want to make it automated.
I know (but I don't know HOW) I can pass a parameter (database link name) while running the first script (which calls the other 5 scripts), so that the parameter replaces the @db_link in all the 5 scripts and gets the report of the related (@db_link) database.
Could somebody tell me how to do this task using SQL and PL/SQL ?
OR
send me a sample PL/SQL script to do this task?
Sorry for the inconvenience and thanks in advance.
- JT -
How to pass a variable to the shell script and crontab?
Friends,
here is my script.....
exp userid=username/password@realdb file=/u02/logical_backup/abc_+$date+.dmp log=/u02/logical_backup/abc_+$date+.log owner=oraadmin statistics=none
i want the exported file name as abc_2101.dmp and abc_2101.log (2101 is a date and month)
I want to execute this script daily at 02:00 AM.
so that i edited the crontab -e as....
00 02 * * * ./u02/script/dailybkp.sh
Now what i want is....
1. is the steps are correct for crontab -e?
2. Is the script of the crontab will execute daily at 02:00 AM?
3. how can i rename the .log filename and .dmp file name daily according to the date. for example abc_2001 is today's date and month.how can i replace with the variable.
thanks
sathyguysorry....i tested with cp command it was working fine...
so, i thought it should work for exp command also.
but its not working....also its not throwing any error....
the crontab -e is having...
00 02 * * * exp userid=system/password@realdb file=/u02/test/n22.dmp log=/u02/test/n22.log owner=scott statistics=none
also i have tested by calling the script.
#!/bin/bash
00 02 * * * /u03/script/testbkp.sh
its not working
but the below one is working....
00 02 * * * cp /u02/test.txt /u02/test/test.txt
also this one is working....
#!/bin/bash
00 02 * * * /u03/script/testbkp.sh
i listed the chkconfig --list crond
crond 0,1,6 = off
2,3,4,5 are on
what might be the reason?
thanks
sathyguy -
Passing Variable back to batch script
I need to pass the result of a sql script back to the calling batch script. How would I do this? This is what I have tried
Batch Script
return_code = 'sqlplus loginname/pass@database path/sqlscript.sql'
echo $return_code
sqlscript
Declare
v_locked varchar2(1);
Begin
SELECT locked into v_locked FROM program_lock
WHERE program = 'xxx';
end;
exit v_locked;I already tried the option you suggested.
This is what I have in my dynamic script:
PROMPT(SELECT,PR_CTR,,"Select the Profit Center","%ENTITY_DIM%")
INFO(EQU,=)
INFO(TAB,;)
TASK(ZBPC_REVAL_SCRIPT_RUN,SUSER,%USER%)
TASK(ZBPC_REVAL_SCRIPT_RUN,SAPPSET,%APPSET%)
TASK(ZBPC_REVAL_SCRIPT_RUN,SAPP,%APP%)
TASK(ZBPC_REVAL_SCRIPT_RUN,LOGICFILENAME,COPY_ACTUALS.LGX)
TASK(ZBPC_REVAL_SCRIPT_RUN,REPLACEPARAM,PR_CTR%EQU%%PR_CTR%)
This is what I have in script logic
*SELECT(%CURRENT_CYCLE%, "[ID]", "PLAN_CYCLE", "[COMPARISON] ='CURRENT' ")
*XDIM_MEMBERSET ACCOUNT=BPC711000
*XDIM_MEMBERSET CURRENCY=LC
*XDIM_MEMBERSET DATASOURCE=ACTUALS
*XDIM_MEMBERSET EMPLOYEE=BAS(<ALL>)
*XDIM_MEMBERSET TIME=BAS(2010.TOTAL)
*XDIM_MEMBERSET PLAN_CYCLE=%CURRENT_CYCLE%
*XDIM_MEMBERSET PROFIT_CTR=$PR_CTR$
*START_BADI FILTER_PLAN
QUERY = ON
WRITE = ON
*END_BADI
When I run the DM Package I get the error Memebr :$PR_CTR$ not exist
Regards,
Deepti -
Passing parameters from shell script to OWB process flow
Hi all,
I am running OWB process flow (using the template script provided by oracle) and i want to pass two date parameters as shown below:
sqlplus -s $SQL_USER/$SQL_PWD@$ORACLE_SID @$HOME_DIR/src/vmc_oem_exec_script.sql OWB_OWNER VMC_POST_DW_PF_LOC_SIT PROCESS VMC_NM1_PORT_MAIN "," "P_DATE_FROM=$DATE_FROM,P_DATE_TO=$DATE_TO"
How do i catch those values in process flow and pass those to mappings in Process flow?
Do i need to create PF variables with same names or any name will do?
Thanks in advanceThis document is explaining how to pass data between activities in process flow.
I am passing parameters from a shell script.
Any ideas,how to pass parameters from shell script and then initialize the process flow variables based on those values and then pass them further to mappings.
Thanks -
[SOLVED] Change environment variables with Shell scripts
How can I change the "BROWSER" environment variable with a shell script; so I can change it on the fly?
Last edited by oldtimeyjunk (2012-10-31 12:57:42)If you just want to do it for BROWSER so that you can change your default web browser on the fly, you could set BROWSER to e.g. ~/bin/mybrowser and create a symlink to the browser you want at ~/bin/mybrowser. Then you could change the symlink at will.
EDIT: man xdg-settings
Last edited by cfr (2012-10-31 02:20:16) -
Executing a shell script from pl/sql stored procedure
Hi,
I have Oracle 8i on HP-UX.
I am passing a shell script name as a parameter to a user defined function from a pl/sql stored procedure. This user defined function has insterface to a user defined Java class file in Aurora java virtual machine which is written using runtime class which can execute any OS command or any shell script. I am getting any OS command run successfully, but could not run my own shell script. It's is not getting environment variables of my own, so not getting executed. So please suggest how can get these env variables in my shell script and also suggest other sucurity concerns to be taken into consideration.
If you have any questions please let me know.
This is really a very urgent issue.....
Please help me.
Thanks
Srinivasa Rao KollaYour best bet is to use the dbms_pipe builtin package to send the command to the host
-
Sending arguments to shell script from Java program
Hi,
I am invoking a shell script within a Java program by runtime command.But I need to pass a variable to the shell script from the Java program!!!
Please help me!!!
Thanks!!!You can set environment variables as the second argument to Runtime.exec(). You can pass argument on the command line. So, what sort of argument do you want to pass?
Maybe you are looking for
-
I need to provide the output for one 3750x switch out of a cluster of 7. With all of the various stats, the entire log will be fairly large.
-
Sync ipod doesn't work if songs on network drive
To consolidate redundant files, I moved MP3s from 3 computers on our home network to a shared network drive. (It's on a NAS.) I used WMP to edit the ID3 tags. All users have access to \\nas1\public\music as a mapped drive, M:. I deleted my kids' iTun
-
Inserting widget phatfusion imagemenu
I'm pretty new to dreamweaver but have inserted a few simple widgets on my webpage with no problems. I am now trying to insert "phatfusions imagemenu" http://www.phatfusion.net/ I would like to have my own pictures with menu titles but I can't even g
-
Hi I am trying to make a math model for the cooling of an object for my Java class. My assignment was: The loss of heat from a hot object depends upon the difference in temperature between the object and the air. An equation for this, to be plotted r
-
Hi, I have a blackberry 9300 (Blackberry 3G) and it's about a year old, i got this phone so me and my dad could talk because my parents split up and i didn't have a good way of speaking to him. A few weeks ago he had this problem when it wouldn't con