scripting interview questions
Top scripting frequently asked interview questions
Is there a way to immediately stop execution of a SQL script in SQL server, like a "break" or "exit" command?
I have a script that does some validation and lookups before it starts doing inserts, and I want it to stop if any of the validations or lookups fail.
Source: (StackOverflow)
How can I determine the name of the Bash script file inside the script itself?
Like if my script is in file runme.sh
, then how would I make it to display "You are running runme.sh" message without hardcoding that?
Source: (StackOverflow)
I am writing a batch file script using Windows command-line environment and want to change each occurrence of some text in a file (ex. "FOO") with another (ex. "BAR"). What is the simplest way to do that? Any built in functions?
Source: (StackOverflow)
How do I split a string based on a delimiter in Bash?
I have this string stored in a variable:
IN="bla@some.com;john@home.com"
Now I would like to split the strings by ;
delimiter so that I have:
ADDR1="bla@some.com"
ADDR2="john@home.com"
I don't necessarily need the ADDR1
and ADDR2
variables. If they are elements of an array that's even better.
After suggestions from the answers below, I ended up with the following which is what I was after:
#!/usr/bin/env bash
IN="bla@some.com;john@home.com"
arr=$(echo $IN | tr ";" "\n")
for x in $arr
do
echo "> [$x]"
done
Output:
> [bla@some.com]
> [john@home.com]
There was a solution involving setting Internal_field_separator (IFS) to ;
. I am not sure what happened with that answer, how do you reset IFS
back to default?
RE: IFS
solution, I tried this and it works, I keep the old IFS
and then restore it:
IN="bla@some.com;john@home.com"
OIFS=$IFS
IFS=';'
arr2=$IN
for x in $arr2
do
echo "> [$x]"
done
IFS=$OIFS
BTW, when I tried
arr2=($IN)
I only got the first string when printing it in loop, without brackets around $IN
it works.
Source: (StackOverflow)
I've used the following script to see if a file exists:
#!/bin/bash
FILE=$1
if [ -f $FILE ];
then
echo "File $FILE exists."
else
echo "File $FILE does not exist."
fi
What's the correct syntax to use if I only want to check if the file does not exist?
#!/bin/bash
FILE=$1
if [ $FILE does not exist ];
then
echo "File $FILE does not exist."
fi
Source: (StackOverflow)
I am writing a shell script to run under the KornShell (ksh) on AIX. I would like to use the mkdir
command to create a directory. But the directory may already exist, in which case I do not want to do anything. So I want to either test to see that the directory does not exist, or suppress the "File exists" error that mkdir
throws when it tries to create an existing directory.
Any thoughts on how best to do this?
Source: (StackOverflow)
I tried to declare a boolean variable in a shell script using the following syntax:
variable=$false
variable=$true
Is this correct? Also, if I wanted to update that variable would I use the same syntax? Finally, is the following syntax for using boolean variables as expressions correct:
if [ $variable ]
if [ !$variable ]
Source: (StackOverflow)
I'm trying to get an if
statement to work in Bash (using Ubuntu):
#!/bin/bash
s1="hi"
s2="hi"
if ["$s1" == "$s2"]
then
echo match
fi
I've tried various forms of the if
statement, using [["$s1" == "$s2"]], with and without quotes, using =
, ==
and -eq
, but I still get the following error:
[hi: command not found
I've looked at various sites and tutorials and copied those, but it doesn't work - what am I doing wrong?
Eventually, I want to say if $s1
contains $s2
, so how can I do that?
I did just work out the spaces bit.. :/ How do I say contains?
I tried
if [[ "$s1" == "*$s2*" ]]
but it didn't work.
Source: (StackOverflow)
I have some simple shell scripting tasks that I want to do
For example: Selecting a file in the working directory from a list of the files matching some regular expression.
I know that I can do this sort of thing using standard bash and grep but I would be nice to be able to hack quick scripts that will work in windows and linux without me having to memorize a heap of command line programs and flags etc.
I tried to get this going but ended up getting confused about where I should be getting information such as a reference to the current directory
So the question is what parts of the Ruby libraries do I need to know to write ruby shell scripts?
Source: (StackOverflow)
I needed to write a script to enter multi-line input to a program (psql
)
After a bit of googling, I found the following syntax works:
cat << EOF | psql ---params
BEGIN;
`pg_dump ----something`
update table .... statement ...;
END;
EOF
This correctly constructs the multi-line string (from BEGIN;
to END;
, inclusive) and pipes it as an input to psql
.
but I have no idea how/why it works, can some one please explain?
I'm referring mainly to cat << EOF
, I know >
outputs to a file, >>
appends to a file, <
reads input from file.
What does "<<"
exactly do?
And is there a man page for it?
Source: (StackOverflow)
I'm writing a script in Bash to test some code. However, it seems silly to run the tests if compiling the code fails in the first place, in which case I'll just abort the tests.
Is there a way I can do this without wrapping the entire script inside of a while loop and using breaks? Something like a dun dun dun goto?
Source: (StackOverflow)
This seems like such a simple question I'm embarrassed to ask it:
test.sh
#!/bin/bash
STR = "Hello World"
echo $STR
when I run sh test.sh I get this:
test.sh: line 2: STR: command not found
What am I doing wrong? I look at extremely basic/beginners bash scripting tutorials online and this is how they say to declare variables... So I'm not sure what I'm doing wrong.
I'm on Ubuntu Server 9.10. And yes, bash is located at /bin/bash
.
Source: (StackOverflow)
What is the simplest way to grab all the given arguments for a bash script and pass them all into another command within the script? For example:
Command Line:
./runProgram.sh [ARGS HERE]
Script:
#! /bin/bash
cd bin/
java com.myserver.Program [ARGS HERE]
Source: (StackOverflow)
I tried using $(date)
in my bash shell script, however I want the date in YYYY-MM-DD format. How do I get this?
Source: (StackOverflow)