clicker script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting clicker script
# 1  
Old 07-03-2004
clicker script

This is a continuation of what started off as a few questions here and here for a script i've been working on, i've had final exams since then so had to drop it for a while, I worked out the last problems and now have a few new ones.

here is my script so far.

Quote:
#! /bin/sh

originalname=Dock\ Clicker

execfile=$(basename "$0")
execdir=$(dirname "$0")

cd "$execdir"
cd ../../

appname=$(basename $PWD)

#number=the number in between the () in $appname
#newnumber= $number plus 1

#name= the text before the () in $appname

name=Dock\ Clicker
prepwd=$(dirname "$PWD")
prepwd=$prepwd/
newpath="$prepwd""$name"\ \("$newnumber"\).app

mv "$PWD" "$newpath"

exit 0
The main problem i need to work out is how to get $appname (something like "Dock Clicker (5).app") split into the stuff before the (5).app ($name) and stuff between the () ($number)

If it helps, the purpose of this script is to be the executable file for a cocoa bundle that increments a number in it's name every time it is executed.

Any other suggestions for enhancements on the rest of the script would be welcome also :-)
# 2  
Old 07-03-2004
I'm not sure that I understand, but does this help?

$ x="Dock Clicker (5).app"
$ name=${x%\(*}
$ temp=${x#$name\(}
$ number=${temp%\)*}
$ echo $name
Dock Clicker
$ echo $number
5
$ ((newnumber=number+1))
$ echo $newnumber
6
$

This is ksh code. But this stuff should work in any posix shell. It's not going to work if you're using the bourne shell. If you are, you really should switch to a more modern shell. ksh is approaching it's 20th birthday.

You can use the # and % trick to get rid of basename and dirname too.
# 3  
Old 07-03-2004
You will have to maintain a file that is writable by whatever user or group will run the script.

Your code does a "cd ../../" to go up two levels, and that directory and whatever filename you choose to place in there is what I'm talking about. The file keeps count for you. Unix isn't like Windows - there is no Registry.

Let's ignore concurrency issues for now (file locking). You'll need help with that later on.

Do you want a current running count of the processes extant on the system - or just a running count of how many times the script has been executed since day one?
# 4  
Old 07-03-2004
Can i ask where you guys leant that, and what is it for?(the script) what are you doing?
# 5  
Old 07-04-2004
Would it be much to switch the script to bash? would that better? I only have experience with sh, tcsh and bash. An Mac OS X doesn't come with ksh installed, i could include it in the bundle though that would be ugly seeing as i'd still need another executable to find the path to it (i think), can a shebang be something like #! ../ksh ?

Quote:
You can use the # and % trick to get rid of basename and dirname too.
and what might that trick be?

Quote:
You will have to maintain a file that is writable by whatever user or group will run the script.

Your code does a "cd ../../" to go up two levels, and that directory and whatever filename you choose to place in there is what I'm talking about. The file keeps count for you. Unix isn't like Windows - there is no Registry.

Let's ignore concurrency issues for now (file locking). You'll need help with that later on.

Do you want a current running count of the processes extant on the system - or just a running count of how many times the script has been executed since day one?
Couldn't quite make sense of all of that. I'm on a mac and this is meant to be a cocoa bundle I'm making (if that means anything to you). I just want the script to update the number in the bundle's (.app) name whatever it might be, which means the user can reset it to whatever they want without having to open it up (simply by renaming it).
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