General :: If Statement With Multiple Tasks?
Feb 2, 2011I want to have an if statement that does multiple things:
Code:
if [....] ; then
1=...
2=...
[code]....
I want to have an if statement that does multiple things:
Code:
if [....] ; then
1=...
2=...
[code]....
right now i'm doing a find . -type d -iname "z*" to find all folders who's name starts with z or Z.
Is there a way I could with one command find all folders who's name starts with the letters M through Z, without having to do the same command over and over and just changing the letter each time?
I've started dabbling with the case statement in order to pass some option's arguments into variables. I do not think I am doing this right.
Code:
usage() {
echo "Usage: $0 [-z|--snooze] [-c|--channel] [-p|--playlist]
[-m|--message] [-v|--mpcvolume]"
[code]....
As you can see, I want to pass arguments depending on the option(s) chosen by the user; ie. --snooze, or --channel. By default, if no options are chosen, I'll display a usage message; though in the future I'll provide some sane defaults. I'd like to create a case statement to handle passing arguments to any number of options; something like:
Code:
wakethehellup.sh --snooze 20 --message 'wake up!'
and for the other arguments, it would have a default set. The case statement I provided fails with a syntax error "syntax error near unexpected token `$2'" near the '--snooze' in the statement, so I take it you can't pass a parameter in this way; but I'm confused as to how I'm supposed to pass different parameters to different options without the options being confused as parameters.
I have been working on a project for a while now that involves a rather complex daemon that has to be simultaneously running different tasks. For example one of these tasks is to receive IP packets from the Netfilter queue and place those packets into one of several internal queues. While other tasks involve taking IP packets from those internal queues and processing/manipulating them and finally returning them back to the Linux network stack.
As I as I have no previous C experience before starting this project I just spawned a new thread each time I needed the daemon to be doing something else while those other tasks continued to run. Is there any other way of doing this or is this pretty much the only way of doing this? Because C is procedural I could not figure out any other way of doing accomplishing what I wanted. Should I have done it some other way or is this the correct and only way I could have gotten my C app to be running multiple tasks at the same time?
We are building our C++ project in Kdevelop IDE. Every time we run "Run Configure" from the "Build" menu, a file named "libtool" gets automatically generated. This file contains a statement as "ECHO="echo"".f we run "Automake", without modifying the "libtool" the system hangs and theputer needs to be restarted.Therefore every time we run "Run Configure" we need to include the line "echo="echo"" below the statement "ECHO="echo"" manually.I think a script can be written which does the above on its own.I am not a shell script programmer, I know the good tutorials for shell scripts are available on the net, but learning scripting only for this task would be time-consuming and painful.
View 4 Replies View RelatedI've written a simple perl code to learn switches in perl.My code is pasted below,
#!/usr/bin/perl
$opt = 1;
switch($opt) {
[code]...
the script below prints the pwd of where I want to be. after the fi it puts me back at the original dir. just writing these scripts to understand what's going on.
#! /bin/bash
if
[ -d mydir ]
then
cd mydir/ && pwd
fi
I'm a bit stuck with IF statement. There is the code:
#!/bin/bash
# Variables
VAR1=test
VAR2="echo $VAR1"
# Case 1
echo Case 1
if [ test == test ]; then
echo "equal"
else
echo "not equal"
fi;
echo ""
# Case 2
echo Case 2
if [ "VAR1" == test ]; then
echo "equal"
else
echo "not equal"
fi;
echo ""
# Case 3
echo Case 3
if [ "VAR2" == test ]; then
echo "equal"
else
echo "not equal"
fi;
echo ""
When executed, why case "2" and "3" differs from case "1"? Where am I wrong and how to solve this trouble? (my aim is to get "equal" from all cases).
I want to have the System Bell ring when a process is over say a download. First I created a file named 'beep' that plays the System Bell. Because the System Bell rings by hitting cntrl-G the 'beep' file looks like this.
Code:
echo ^G
I then give the file owner execute permission. I know that this command would serve my purpose.
Code:
[URL]
However I want to sharpen my Bash programming skills. I wanted to write the Bash script along the following logic and with the fewest lines possible. Not really a script, I want to insert this short script via command line instead of a file. Let's say the download has commenced and the PID = 16666.
Code:
until ps -p 16666
do
/root/beep
done
Now obviously 'ps -p 16666' will already evaluate to true. My question is, is there a way to maybe enclose 'ps -p 16666' and prepend some operator that inverts the condition to where until 'ps -p 16666' evaluates to false then run /root/beep?
I need to to write a bash script using an If...Then...Else statement that will accept a day of the week from the command line what do I do or where do I go.
View 2 Replies View RelatedOn Ubuntu 9.10 I installed Python 3.1.1 successfully with Synaptic Package Manager. However the Python interpreter cannot find my scripts, currently in /home/dave/pycode. This appends _temporarily_ but python remains clueless about location of my scripts. Searched Internet and some speak of .rc or .bashrc or .profile..files. Found some of these and opened with Komodo : they are Linux script files and I am clueless as to how to modify.Currently I can import my scripts only if I change to the /pycode dir before running.Lutz's Python book says to change PATH file - Ha .Sobell's "A practical Guide to Ubuntu Linux" is no help. Ubuntu's own on line help is worth less than a fart in a hurricane. Ubuntu's gedit would not even open bash.bashrc.
View 7 Replies View RelatedI am facing problem with the following script. Could you please look into this.echo 'Enter Staging number' case $STGNUM in
1)
for i in {'stg1-greg','stg1-marsha','stg1-peter','stg1-jan','stg2-greg','stg2-marsha','stg2-peter','stg2-jan'};do echo $i; ssh $i sudo -u dev /opt/usr/apps/workflow/stopwf.sh;done;
[code]....
I am trying to create a "GUI File Transfer " Application , for transferring the files within the network. For That I will obtain User name, Password through the GUI, I will have to append username and password in a single line and run it . I am facing difficulties in exploring the "command",
View 4 Replies View Relatedas the title,I want learn how it works.
View 1 Replies View RelatedI'd like to get the information about automatization of the tasks in Linux, more specifically in Fedora with minimal installation (without graphical interface and so on).The application (developed in C) needs to be started automatically when the computer is initialized. I've read about cron but I guess it's not a solution in this case because whenever computer starts the application must run once.I also have read about the/etc/ rc.local file but I made some tests changing it and they didn't work, the computer starts asking me the login and password but nothing run after that.The inittab was the same. In this way, someone know how to initialize an application developed in C when the computer starts?
View 6 Replies View RelatedHere's the bash script:
Code:
FILES="/usr/sbin/accept
/usr/sbin/pwck
/usr/sbin/chroot
/usr/bin/fakefile
[code]....
Notice the extra" file size" lines in there? What's causing that? I'm trying to learn more bash skills. I have no experience with awk because I have been unable to understand it's basic necessity. But I thought maybe if I try it with some test scripts I might become more interested in using it more and expand my very limited capabilities.
I am trying to use sed command to repalce one string with other but somehow replacement string contains forwards slash hence getting the error statement garbled!
[Code]...
Got a small problem, I'm trying to schedule a script to run every Thursday at midday and the scheduled tasks application on Ubuntu doesn't seem to work. The script is fine when I run it from a terminal.I have zero experience using cron at the command line, can anyone tell me what I should do?
View 2 Replies View RelatedI am a student at DeVry University, newly introduced to Fedora and Linux in general, and have a project whereby, we have been asked to consider some administrative tasks that we could automate via a script.I was wondering if there were any thoughts or directives from the community on what admin tasks you guys find to be of inestimable use in automating via a Linux script.
I am new to the Linux commands but have done a wee bit of programming before in C++ and others.I have also done basic DOS batch files before.
I am new to the AIX .Can any one describe me the daily tasks of a aix admin
View 3 Replies View RelatedThere must be a way to perform privileged tasks in the Gnome desktop (or actually Nautilus, I guess)...similar to using SUDO in a terminal window.
For example I want to change the rights to a file, but Nautilus tells me I can't because I'm not the owner.
I have a folder named "logs" which contains log files. I would like to have a bash script or a cron job or something like this which will check the folder continuousy and perform some tasks (for example echo "New file is created") every time a new file with pattern like "Screen.log.***" is created in the folder "logs"
Is it possible in Linux?
Im a bit stuck with a simple script that im practicing with... im trying to get my head around some simple scripting. Basically i want to write a script that will work as below: It will ask the user to enter their userid. If its correct it will say 'Correct' If its the wrong id (But the ID exists in /etc/passwd) then it will say 'incorrect' If its not a valid userid it will say 'doesnt exist'. What i have so far is:
[Code]...
# If the user enters their own userid they will get a comment saying 'correct' $LOGNAME) echo "Correct";;
# If they enter another users ID (That exists in the /etc/passwd), then they get a message to say 'incorrect userid used'. Im not sure what i need to do here to get it to check the /etc/passwd to see if the input exists in there.... im guessing some kind of simple 'if' statement to say ---- "if 'input' exists in /etc/passwd then echo "incorrect userid used"
# If its entered incorrectly and not a valid ID then they will get this comment. Again, im guessing this part would be similar to te above option..... *) echo "not a valid ID";;
Ive managed to work out how the basic Case staements work, but to add a conditional statement based on the input, i just cant figure out. I have tried looking on google, and found some help but it doesnt really explain how i check the input against the /etc/passwd.
fscheck is quite annoying, since it usually occurs when I reboot my system performing administration tasks. do I actually need fscheck if Im using the ext3 file system? if not how would I extend the period between checks or just turn it off altogether?
View 9 Replies View RelatedI'm trying to connect one computer to two others in an ad-hoc infrastructure.
[computer 1] ---- [computer 2] ---- [computer 3]
computer 2 is running Linux and has a single NIC wlan0. I want to it to connect to both computer 1 and computer 3 so each computer can talk to the other. No switch is available so it needs to be an ad-hoc setup.
[Code]...
I am to rename all the files within a directory (which contains multiple subdirectories) recursively without invalid characters.
I tried the coding posted above.
find . -type f -printf '%p
' | while read file; do
oldfile=$(basename "$file")
newfile=$(echo "$oldfile" | sed 's/[^A-Za-z0-9_.]/_/g')
if [ ! "$newfile" == "$oldfile" ]; then
echo mv "$file" "${file%$oldfile}$newfile"
code....
but I get an error on both of them stating "find: bad option -printf find: [-H | -L] path-list predicate-list"
I'm starting to have A LOT of opened windows in my machine. Sometimes within a project, I have e-mail/task management/personal e-mail/twitter, and a lot of different opened applications/terminals in my Linux workstation.Sometimes it would be interesting to have different workspaces to projects instead of this configuration I have nowadays that are classes of work (bad name, I know, but I think you got the idea).I'm starting to think about using two monitors: one with Corporate Management, Work and Personal. The second monitor is only the development state: each workspace here is about a project being worked on instead of groups of works like before. A workspace may be implementing different classes for example.
My question is: I just want to change to a second monitor using the mouse. I want to still be able to change workspaces in the same monitor using keyboard shortcuts. The keyboard shortcuts wouldn't change monitors, just worskpaces on the same monitor. All the tutorials I read (like this one) only tells how to use multiple monitors but doesn't answer my question about keyboard shortcuts.Does Linux (Ubuntu 10.04 Lucid Lynx or Debian 5.0.5 Lenny) support this envisioned setup (Different workspaces in a way that keyboard workspace switching only works in the current monitor) ? If so, how?I haven't tested this setup, that's why I'm asking. In this question the user says it works exactly how I want it to behave, can someone else confirm it?
I am trying to write a script that takes an input file ($FileName) and an intermediate file ($FileName.info) and removes lines from $FileName if the value in $2 of $FileName.info is <75.
I can't figure out how to feed only one line of the .info file to the if statement at a time so that it will perceive it as an integer instead of a list.
The error I am getting now is ./script.sh: line 6: [: : integer expression expected
Sample input $FileName
Code:
Code:
Code:
Script so far:
Code:
I'm looking at setting up a couple automated systems: Here are a few examples:
* Internal accounting system to download and process emails
* Public web server to visit
I could put each system on its own separate box -- for example, it's generally good practice to separate anything that external users have access to (such as a webserver) from internal processes such as accounting. Now, rather than dishing out the money for two separate servers, could I get away with just installing new instances of VMWare on the same box for each system?
To give you an idea, these are not large scale computationally sensitive systems. The accounting one is simply downloading and tallying emails, and the latter is just a webserver with maybe 5 hits per day on a good day. I could definitely pick up a new box for say $50, but I wanted to know the general practice of using VMWare on the same box versus two separate boxes.
How to search multiple words in multiple lines, inside a directory including sub-directory? Pls. give easy example. I want to search the files (in /xx folder and all subfolders) that have header.h included and used x() function. I tried $grep -r "header.h" | grep -r "x(" /Folder/subfolder/ > search.log
View 7 Replies View Related