Introduction to Shell Scripting

Naveen
24
Mar 2011
A shell script is a script written for the shell, or command line interpreter, of an operating
system. It is often considered a simple domain-specific programming language. Typical
operations performed by shell scripts include file manipulation, program execution, and printing
text.
Types of shell scripts : Basically we have three types of the shell scripts [Most Prominent
one’s ,widely used in industry].
1. Bourne Shell :
The Bourne shell, or sh, was the default Unix shell of Unix Version 7, and replaced the
Thompson shell, whose executable file had the same name, sh. It was developed by Stephen
Bourne, of AT&T Bell Laboratories, and was released in 1977 in the Version 7 Unix release
distributed to colleges and universities. It remains a popular default shell for Unix accounts. The
binary program of the Bourne shell or a compatible program is located at /bin/sh on most Unix
systems, and is still the default shell for the root superuser on many current Unix
implementations.
Features of the Bourne shell include:

Scripts can be invoked as commands by using their filename
May be used interactively or non-interactively

Allow both synchronous and asynchronous execution of commands

supports input and output redirection and pipelines

provides a set of built-in commands

provides flow control constructs, quotation facilities, and functions.

typeless variables

provides local and global variable scope

scripts do not require compilation before execution

does not have a goto facility, so code restructuring may be necessary

Command substitution using back quotes: `command`.

Here documents using << to embed a block of input text within a script.

"for ~ do ~ done" loops, in particular the use of $* to loop over arguments.

"case ~ in ~ esac" selection mechanism, primarily intended to assist argument
parsing.

sh

It contains strong provisions for controlling input and output and in its expression
matching facilities.

provided support for environment variables using keyword parameters and exportable
variables.

2. C Shell :
The C shell (csh or the improved version, tcsh, on most machines) is a Unix shell that was
created by Bill Joy while a graduate student at University of California, Berkeley in the late
1970s.
The C shell is a command processor that's typically run in a text window, allowing the user to
type commands which cause actions. The C shell can also read commands from a file, called a
script. Like all Unix shells, it supports filename wildcarding, piping, here documents, command
substitution, variables and control structures for condition-testing and iteration. What
differentiated the C shell, especially in the 1980s, were its interactive features and overall style.
Its new features made it easier and faster to use. The overall style of the language looked more
like C and was seen as more readable.
Features of C Shell :
Some of the features of the C shell are listed here:

Customizable environment.
Abbreviate commands. (Aliases.)

History. (Remembers commands typed before.)

Job control. (Run programs in the background or foreground.)

Shell scripting. (One can write programs using the shell.)

Keyboard shortcuts.

3. Korn Shell :
The Korn shell (ksh) is a Unix shell which was developed by David Korn (AT&T Bell
Laboratories) in the early 1980s and announced at Toronto USENIX on July 14 1983
ksh is backwards-compatible with the Bourne shell and includes many features of the C shell as
well, such as a command history, which was inspired by the requests of Bell Labs users.

The Korn shell's major new features include:

Command-line editing , allowing you to use vi or emacs -style editing commands on
your command lines.
Integrated programming features : the functionality of several external UNIX
commands, including test , expr , getopt , and echo , has been integrated into the shell
itself, enabling common programming tasks to be done more cleanly and without creating
extra processes.

Control structures , especially the select construct, which enables easy menu
generation.

Debugging primitives that make it possible to write tools that help programmers debug
their shell code.

Regular expressions , well known to users of UNIX utilities like grep and awk , have
been added to the standard set of filename wildcards and to the shell variable facility.

Advanced I/O features , including the ability to do two-way communication with
concurrent processes (coroutines ).

New options and variables that give you more ways to customize your environment.

Increased speed of shell code execution.

Security features that help protect against "Trojan horses" and other types of break-in
schemes.

Why do we Use Shell Scripting
Naveen
24
Mar 2011
We use Shell Scripts to obtain the following purposes.
1. Customizing your work environment.
2. Automating Your Daily Task.
3.Automating Repetitive Task.
4.Executing Important Procedures like shutting down the system,formatting a disk,Creating a file
system on it,mounting the file system,letting the users use the floppy and finally un mounting the
disk.
5.Performing the same operation on many files.

When Not to use Shell Scripting : 1.such as writing an entire billing system.To run the command task.g :. Print the calendar year or month Print the calendar 2009 year Print calender for current december month Tue Mar 09 07:10:10 IST 2009 . Requires a high degree of efficiency 3. Date date date +%m Description To find the version of unix os To find the machine name Print the user manual for any command. Usage of Shell Scripts with in Informatica: 1. Helpful when we donot know which command will solve the purpose. Requires a variety of Software tools. One line definition of grep usage. 2. To have header and footer in case we are goanna write to an flat file 3. 2.To run an batch via pmcmd.gives the different option available for copying. 4.Cal cal 2009 cal dec 4. Is too complex. To update parameter file with session start time and end tim Basic Commands Part1 Naveen 24 Mar 2011 Command Option 1. Man uname -r uname -n man grep man -e grep man -k copy 3.e. To find the user manual for grep command. Uname 2.

ls -x ls -F ls -a ls -r ls -x abc ls -R ls -ld ls -il testfile ls -lt ls -ltr ls -lut .ls To Print the contents of current directory.< * > indicate all files containing executable code and </> indicate the directories.M and S 5. To Print only directoris and executable files.Who who who am I who -H who -u 6.Bc To use the calculator 9. Prints all the file with their last modification time in reverse order keeping last modified at bottom. prints last access time of files.Passwd 7. Print all the directories. Print all files and subdirectories in directory TREE. Prints all the file with their last modification time keeping latest modified at top.date +%h date +'%h%m' date +%d date +%y H.Lock 3 March Mar-03 10 9 Login details of all the users in system Login details for only myself Login details for all users with headers info Login details for only active users To change the password lock -45 lock the terminal for 45 minutes 8. Reverse the sort order of all the files with their names. Print the content of abc directory. Prints the inode number of file. <a> stands for all. Prints Multi column output of files with their names. Print all files including hidden files.

To copy file and directories. Create a new file with testfile name.Split To split the big files in different small files of 1000 lines each<default>.Cat 11. Renaming the testfile to new name as <newfile>. 13.Path Set the path variable for PATH=$PATH:/home/ SHELL to use these directory gagan:/home/deep path to locate the executables commands.wc These three command are used to find the difference in two files wc -w testfile wc -c testfile wc -l testfile wc testfile Print the numbers of words. change the default split line size to 72. Recursive deletion will not remove the write protected files. copying entire directiry structure abc to newabc recursively. Split the files into small files. lines and character in the file 17. copying testfile to abc directory interactively. split testfile split -72 testfile split testfile newfile 15. Cmp comm Diff 16.10.rm cat testfile cat > testfile cp -i testfile abc cp -r abc newabc rm -f newabc rm -r newabc Print the content of any file. All the options of cp command is applicable for rm command.CP 12. Removing directory newabc forcefuly. 18.lp Used for Printing the files 14.stty stty -a stty intr \^c stty eof \^a Print current setting of terminal To delete the character during backspacing To change the interrupt key to .

To redefine and unset the alias. 22. .cd - To switch between current working directory and most recently used directory. Every command has event number. 24. To change the defalult setting of command history saving feature. Repeat previous command in Korn Repeat previous command in Bash Repeat previuos to prevoius command Repeat the command with 20 event number. Passing positional parameter ETL to showdir alias will take us to that directory.Alias 20. To create short hand names of command.ls -l' unalias history -5 history 10 15 HISTSIZE 1200 r-2 r 20 Print all the alias set in the system.Tilde(~) Changes control to home directory Changes absolute path home directory of user a_cmdb. the value of home directory can be seen by $HOME environment variable 23.History 21. group <g>.chmod Changing the permission of chmod u+rwx newfile file for user <u>.Ctrl c instead of 'DELETE' default To change the termination control of input during file creation using cat command from Ctrl d to Ctrl a. Display event number between 10 an d15. 19. r !! alias alias l ='ls -ltr' alias showdir ='cd $1. Print the last 5 command that has been used. To find the previous command that has been used.

Description head newfile head -5 newfile head -1 newfile | wc -c vi 'ls -t | head -1' head -c 512 newfile head -c 1b newfile head -c 2m newfile Display top content of file Display top 10 lines of file when used without argument Display top 5 lines of file<newfile> when used without argument To count the number of character present in first line.ps Prints the Processes associated with ps -f current user.r read<4>. start dispplaying 10 line onward till the end. To open the last modified file for editing. .Head 26. w write<2> and x execute<1>.others <o> or all <a> with + as assign . Print first 512 byte character Print first 2 blocks (1 MB each) tail -5 tail +10 tail -f 6_load. chmod g+x newfile chmod 757 newfile chmod 457 newfile chmod -R a+x abc chmod -R 001 .log Display end of file Display last 5 lines of file. ps -f -u a_cmdb Prints the Processes associated with ps -a current user with their hierarchy. Indicate the current directory.as remove and = as absolute permission. Basic Commands Part2 Naveen 24 Mar 2011 Command Options 25. To pick special no of character from file.f .$$ Prints the Process id of current shell 28. . Print the gworth of file 27.Tail Recursively changes the permission to execute for all directory and sub directory in abc directory for all users.

Prints system process. . prints all the ksh process running in the system by first searching for all the process. 29. Prints all the processes associated with a_cmdb user. Prints all the users processes. Running fg will bring most recently started background process <LAST IN FIRST OUT> First job will come into foreground. Running job in background Run the search job in background by printing its process id. A Process having process id as 1 is parent of all SHELL processes. System process init having PID as 1 nohup ps -eaf | is parent of all SHELL processes grep 'ksh' & and when the user login this PID become the PPID of SHELL prrocess. 30.To avoid dying of shell even when the user logs out run the background process using nohup command. Kill the parent process id which inturn kill all the child process. Killing system process init is not possible.Shell become the parent of all ps -f background process.Kill kill 520 kill 640 kill 1 kill $! kill 0 To kill the command.nohup Shell is parent of all background jobs and it dies when user logs out and ultimately all the child process also dies.Background ps -f -u a_cmdb This command print all the jobs job ps -a runnung in background with their ps -e sequence no of exceution. Kill the process with 520 process id. 31. Now after running the process in nohup mode kernel has reassigned the PPID of ps process with PID of system process which will not die even after SHELL dies through logging out.ps -e stands for full.

33. $3 . The 2nd and last field of output is taken fron passwd file from /etc directory.Nice Running the command with low priority nice who | wc Nice value range from 1 to 39.ksh will execute today by 2:10 34.Set finger finger a_cmdb set 10 20 30 -x set the posional parameter. $* and $# posional parameter When this statement is used at start of ksh script it echoes each statement at the terminal shift command transfer the contents of positional parameter to next lower number. chown -R change the owner from gagan to . at 2:10 load. l& higher the nice value lower the nice -n 10 who | priority. $$ stores the PID of current login shell 32. 37. 36.Batch batch load. Prints details about a_cmdb user.Chown To change the owner of file can chown jaspreet only be done by owner or sys testfile admin.ksh Indicate the load. shift 2 places 38.Cron cron executes process at regular intervals it keeps checking the control file at /user/spool/cron/crontabs for jobs. wc -l & nice value becomes 30.At To Run the job at specied time of the day.No need to remember Process id of last background procees its in $! Kill all process in the system except login shell process. shift one position. This will set $1.Finger Produces list of all logged users when run without any argument. 35.default nice value is 20.Shift shift shift 2 39. $2.ksh batch command executes the process whenever the CPU is free.

Linking two file. Recursively changes the owner all files under current directory.Linking in 43. 40. Now gagan cannot change the ownership of test file what he can do is just create the jaspreet testfile similar copy of file and then he can become the owner of file. Prints the amount of free space available on the disc.df 44.jaspreet for testfile.ksh 7_load. Prints the disk usage of specific directory tree. Drop the link between two files. Prints disk usage for every user .ksh df -t /home/oracle du -s du -s /home/* Changing the time stamps of file touch without any argument will change both modified time and access time.Touch 42.ksh 7_load. Prints the free and total space under oracle file system. Changes only access time. test file Recursively changes group all files under current directory.ksh will give us same inode number. touch 03161430 test file touch -m 04161430 test file touch -a 05161430 test file ln 6_load.ksh rm 6_load.du To change the group of file can only be done by owner or sys admin. chgrp GTI test group changed to GTI from IB as file user is still the same and he can chgrp -R GTI again change the group of file to IB. By default du prints disk usage for each sub directory. Prints summary of whole directory tree. ls -li 6_load.Chgrp 41. Changes only modification time. doing this both the file will have same inode number and changes in one will reflect in another also.

sql -c <column start and no> 3./*.space. . sort sort test file column (by specifying position). field (default deliminator tab).5 test file '-d -f <field start and end no> eg: cut -d "|" -f 1.6-12 test file -f <field start and end no> eg:cut -f 1. tar create backup of files recursively. -cvf eg :tar -cvf /home/gagan/sqlbackup . Priority1. gzip gzip etl_code eg:etl_code. F stands for field cut. Cut eg : cut -c -5./*.zip unzip file. By default the sorting starts with first character of each line.5 test file | new file 4. tabs .zip eg:file*sql 2. C stands for column cut.gz eg: etl_code zip file*sql eg: file.sql -x files are restored eg:tar-xcvf /home/gagan/sqlbackup using -x option.gz Description gunzip etl_code.Zipping Files Naveen 24 Mar 2011 Command Options 1. Cut the field b/w 1 and 5 and piped the output to new file.

uppercase letters 4.txt translate to upper case. numerals 3. -r eg : sort -t \| -r +2 test file Reverse sort starting with 3rd field.tr eg : tr '|

'~-' <test.delimiter to distinguish b/w start and end of field. eg : tr '[a-z]' '[A-Z] <test.Sorting starts with 2nd field then with 4th field. overring the default.paste -t eg : sort -t "|" +2 test file Sorting starts from 3rd field skipping 2nd field. eg : sort -t \| +2r test file The above command can be written in another way. eg : sort -t "|" +1 -2 +3 <> Sorting based on different field as in case of order by clause. Lower case letters.txt abc_sort.2. -d delete all occurrence .. -n eg : sort -n <> Numeric sort.txt translate all | with ~ and \ with . 5. -2 indicate to stop the sorting after 2nd field and resume it with 3rd field. eg:paste -d "|" <> <> 6.txt save sorted data in file. -o eg : sort -o abc. -u eg : sort -u <> Unique sort. -d deliminator.

txt 7. ls -lu time of last access touch -a 01290415 <file>.wall wall -g dba "hello" 11.Change Date date 09181754 10. eg: cut -d "|" -f3 <>|sort|uniq -d -c duplicate count.Changing time stamp touch mon date hrs mins <file>.uniq of | . eg : cut -d "|" -f3|sort|uniq -c 8. eg : cut -d "|" -f3 <>|sort|uniq -u -d select only dup records. . 9. shutdown -y -g0 immediate shutdown. ls -lt time of last modification touch -m 01290430 <file>. du to selectively send msg to dba group. shutdown -r now shutdown immediate and reboot. shutdown 17:30 shutdown at 17:30. Disk usage.shutdown shutdown -g2 12. -u remove duplicate. power down after 2 mins. shutdown -y -g0 -i6 shutdown and reboot (init level 6). Unique require sorted file as input.eg : tr -d '|' test.

-size. -mtime -2 -print find file modi in less then 2 days. -mtime +20 | xargs -n20 -p -t rm -f remove at max 20 files in batch and in interactive mode. \( -name "*. xargs -n -p –t eg:find . before removing prompt for confirmation.lst file '-mtime = mod time eg: find . Pattern Searching .13. -name *. remove the files which are not modi for last 20 days -ok eg: find . -mtime +20 | xargs rm -f will be executed only once. -exec eg: find .log -prune exe – directory. -size +2048 -print files greater then x blocks.sh" -o -name "*. -prune don't descend exe eg: find . -type eg: find / -name log -type f -print f for file and d for directory. find <loc> <option> <pattern> <action> find in root dir abc in emp. -atime +365 -print find the file not accessed in last 1 year.find du /home/expimp/create_db tree output for each directory inside. xargs remove all file rm eg: find . du -s //home/expimp/create_db summary. print. 'atime = access time eg: find .lst" \) -print double quotes necessary. eg: find . -atime +180 -ok rm -f {} \. ! –newer eg: find / -name "*. -a (and) -o (OR) eg: find . -atime +180 -ok rm -f {} \.pl" ! -newer last_backup -print file modi before last_backup.

$ Represent all lines in the file. Repeat the previous command :1. -l display files containing record. -i ignore case.10s/gagan/deep/g search between lines 3 and 10 : . $s/<search string>/<Replace String >/g Pattern search and replacement. [PQR] match any single character. : $s/gagan/deep/gc c Ask for confirmation for replacement grep -c counting occurrence.Naveen 24 Mar 2011 Commands Options Description / /Unix Forward search of Unix keyword in file ? ?Unix Backward search of Unix keyword in file n Repeat the last search . g Stands for globally :3. -v skip records that contain directory. -n display line number for record.s/gagan/deep/g Only the current line. . 1. : $s/gagan/deep/g Only the last line.

? Matches zero or one occurrence of previous character.pattern stored in file eg(prashant|admin| director) Fgrep + Matches one or more occurrence of previous character. {a-Z A-Z 0-9} match any single character.txt (like dasgupta & sengupta) egrep -f Huge list of pattern search <pattern_file_name> can passed in the form of test1. ls –l |grep “^d” Prints only directories. <pat>$ ending with pattern. ^<pat> beginning with pattern.txt match zero or one occurrence. egrep '[aA]gg?[ar] [ar]wal' test1.txt match eap1 or eap2 (finds prashant or line with director) egrep egrep (das|sen)gupta match exp x1x3 or x2x3 test1.[c1-c2] match char with ASCII range [^PQR] match single character which is not PQR. egrep prashant| director test1. egrep '[aA]g+[ar] [ar]wal' test1.txt file name .txt match one or more occurrence matches ag & agg. fgrep and egrep accepts multiple pattern both form command line and a file but unlike grep and egrep does not accept regular .

[!x-z] Matches single character that is not within the ASCII range of character x and z .>. ls -l chap? Matches all the files with only 5 character name and should start with chap. ls -l chap* Matches all the files which starts with chap. ? Matches single character. [ !ijk ] Matches single character that is not i or j or k [x-z] Matches single character that is not within the ASCII range of character x and z. [ ijk ] Matches single character either i or j or k. ls -x chap* Matches all the files which starts with chap and prints in multi column way. * does not match all files beginning with dot <.expression. fgrep -f pattern file emp file Faster than grep and egrep family Pattern Matching Naveen 25 Mar 2011 Command Options * Description Matches any number of character including NONE.

cat chap[!0 .ist Print all the files which end with ist extensions.. ls -l chap[!0 . ls *./bin Moves all the files to bin directory. ls .>.9] Matches all file names beginning with alphabet chap and not ending with any number.4] Range specification is also available. cp chap?? abc Copy all files starts with chap to abc directory. Escaping Backslash ( \ ) Pipe | Playing with file names which uses meta character in their file name. ls -l [ a – z A-Z] Matches all file names beginning with alphabet irrespective of case. ls . ls -l * * does not match all files beginning with dot <.9] Concatenates all the files beginning with chap and not ending with number. To pass the standard output of one command as the .l chap* Print all files whose names start with chap but not the one whose name is chap*.???* The above problem can be solved with specifying first few character using meta character <?> explicitly.ls -l chap0[1 . mv * .l chap\* The above problem can be solved by escaping the special character. cmp chap[12] Compares file chap1 and chap2. ls -l .

. echo $z shell concatenate two variable. b=cd. eg: $10 echo "$10" eg: 0 Control Structures Naveen 25 Mar 2011 Shell is looking for $1 variable which is undefined so passes null for this. $1 is part of positional parameter. Shell Variable Shell variables are initialized to null value < by default > so it returns null. a=ab. z=$a$b. All words starts with $ are considered as variable unless single quoted or escaped. Tee who | wc -l Output of who command <three users> passed as input to wc which count the number of lines present.standard input to another. who | tee users list Tee saves the output of who command in user list as well as display it also. echo '$10' All words starts with $ are considered as variable unless single quoted or escaped.

.

Sample Unix shell Scripts Naveen 10 Apr 2011 #ksh: JobNum.sh #Author: Prasad Degela #Date: 03/13/2006 #Reviewed by By: #Date: #Project: Appeals & Grivances Tracking ############################################################################## ###### #This script will call .env file to get common variables. # $1 = environment (DEV) ############################################################################## ###### #set -x ############################################################################## ###### . # SET PARAMETERS .env inboxdir=$PROJECTDIR/qnxt/inbox srcfiledir=$PROJECTDIR/qnxt/estage errorfiledir=$PROJECTDIR/qnxt/error tempfiledir=$PROJECTDIR/nice/tstage . /etldata/aagt/common/scripts/aagt.Part 1 # These parameters are provided for all interfaces.

txt .gz $ARCHFILEDIR rm -f $pfilename.gz rm -f TRAIL*.tempfiledirqnxt=$PROJECTDIR/qnxt/tstage ERROR_EXIT_STATUS=99 SUCCESS_EXIT_STATUS=0 echo "Control Moved to the Inbox Directory = "$inboxdir cd $inboxdir fileconv=`echo "PDP*.txt"` echo "fileconv = "$fileconv files=`ls -tr $fileconv` if [[ $? -ne 0 ]] then echo "No Source File in the InBox "$inboxdir exit $SUCCESS_EXIT_STATUS fi echo "List Of Files in the Inbox Directory "$inboxdir echo "{ $files }" for pfilename in $files do cd $inboxdir cp $pfilename $srcfiledir gzip $pfilename cp $pfilename.

log"` ############################################################################## ###### # RESET AND RUN job sequencer # ############################################################################## ###### $DSBINDIR/dsjob -jobinfo $DSPROJECT $pDSjobname.echo "Source File Name Is "$pfilename pDSjobname="sjAG01" pINVOKE_ID=$pfilename pJobStatusFile=`echo $pfilename".stat"` pJobLogFile=`echo $pfilename". $pINVOKE_ID echo "************************* Reset the Job Sequencer *******************" fi echo AGDB: $AGDB echo AGDBUserID: $AGDBUserID echo ORADB: $ORADB echo ORADBUSRID: $ORADBUSRID .$pINVOKE_ID > $LOGFILEDIR/ $pJobStatusFile JOBSTATUS=`grep "Job Status" $LOGFILEDIR/$pJobStatusFile | cut -f2 -d '('|cut -f1 -d ')'` echo "$pDSjobname Job status code is "$JOBSTATUS if [[ $JOBSTATUS = 3 ]] then echo "Job Status = "$JOBSTATUS $DSBINDIR/dsjob -run -mode RESET -wait -jobstatus $DSPROJECT $pDSjobname.

echo NICEDB: $NICEDB echo NICEDBUserID: $NICEDBUserID echo SrcFile: $pfilename echo SrcFileDir: $SRCFILEDIR echo TempFileDirectory: $TEMPFILEDIR echo TempFileDirectoryqnxt:$TEMPFILEDIRQNXT echo ErrorFileDirectory: $ERRORFILEDIR echo ScriptFileDirectory: $SCRIPTFILEDIR echo "calling $Jobname Sequence" $DSBINDIR/dsjob -run \ -param AGDB=$AGDB \ -param AGDBUserID=$AGDBUserID \ -param AGDBPswd=$AGDBPswd \ -param ORADB=$ORADB \ -param ORADBUSRID=$ORADBUSRID \ -param ORADBPswd=$ORADBPswd \ -param NICEDB=$NICEDB \ -param NICEDBUserID=$NICEDBUserID \ -param NICEDBPswd=$NICEDBPswd \ -param SrcFile=$pfilename \ -param SrcFileDir=$SRCFILEDIR \ -param TempFileDirectory=$TEMPFILEDIR \ -param TempFileDirectoryqnxt=$TEMPFILEDIRQNXT \ .

$pINVOKE_ID $DSBINDIR/dsjob -jobinfo $DSPROJECT $pDSjobname.$pINVOKE_ID > $LOGFILEDIR/ $pJobStatusFile $DSBINDIR/dsjob -logsum $DSPROJECT $pDSjobname.1.3 .$INVOKE_ID > $LOGFILEDIR/ $pJobLogFile JOBSTATUS=`grep "Job Status" $LOGFILEDIR/$pJobStatusFile | cut -f2 -d '('|cut -f1 -d ')'` echo "$pDSjobname Job status code is "$JOBSTATUS if [[ $JOBSTATUS = 1 ]] then echo "Job Status = "$JOBSTATUS echo "Removing File from $srcfiledir on successful processing of file $pfilename" cd $srcfiledir rm -f $pfilename else exit $ERROR_EXIT_STATUS fi done echo 99 END OF THE PROG exit $SUCCESS_EXIT_STATUS # ################################################################## Standards for ETL UNIX Shell Scripts for use with PowerCenter 7.-param ErrorFileDirectory=$ERRORFILEDIR \ -param ScriptFileDirectory=$SCRIPTFILEDIR \ -wait -jobstatus $DSPROJECT $pDSjobname.

etc.sh. siq.) # # Example usage: etl_unix_shell_script.sh # Author: Kevin Gillenwater # Date: 7/24/2003 # Purpose: Sample UNIX shell script to load environment variables # needed to run PowerMart jobs. This script has been provided as an example and is named etl_unix_shell_script.3 Scripting Standards (for PowerCenter version 7. hr.3): Scripting standards include the use of a UNIX shell script. ud.1. # # $1 = Project Id Parameter (ie. # Program: etl_unix_shell_script.Naveen 10 Apr 2011 Standards for ETL UNIX Shell Scripts for use with PowerCenter 7. pass username and password variables # and start the job using the pmcmd command line. and a separate file which contains the username and password for the user called in the script.1. Following is the script and explanation. which the scheduling tool uses to start the PowerCenter job.sh dss # # NOTE: Enter the Project ID parameter that is designated in the # directory structure for your team # (ie. The following is a template that should be used to create scripts for new scheduled jobs. dss. dss would be used for the DWDAS team as the # directory is /usr/local/autopca/dss/) #----------------------------------------------------------------- .

/usr/local/bin/set_pm_var. and will provide one . will provide ease of maintenance if changes need to be made to PowerCenter variables. located on each machine (Leisure for Production and Glance for Development). The set_pm_var.config ETL_USER=`grep ETL_USER $ETL_CONFIG_FILE | awk -F: '{print $2}'` ETL_PWD=`grep ETL_PWD $ETL_CONFIG_FILE | awk -F: '{print $2}'` #----------------------------------------------------------------# Start the job #----------------------------------------------------------------$PM_HOME/pmcmd startworkflow -u $ETL_USER -p $ETL_PWD -s $MACHINE:4001 -f DWDAS_ LOAD_dssqa –wait s_m_CENTER_INSTITUTE #----------------------------------------------------------------# Trap the return code #----------------------------------------------------------------rc=$? if [[ $rc -ne 0 ]] then exit $rc fi Notes Regarding the Script/Standards: 1.sh #----------------------------------------------------------------# Read ETL configuration parameters from a separate file: #----------------------------------------------------------------ETL_CONFIG_FILE=$JOBBASE/$1/remote_accts/test_etl.sh to set up the PowerCenter variables used in the session (. /usr/local/bin/set_pm_var.sh. The beginning of each script should call and execute the script set_pm_var.# Call the script to set up the Informatica Environment Variables: #----------------------------------------------------------------.sh).

it is for informational purposes only: # Program: set_pm_var.sh # Author: Kevin Gillenwater # Date: 7/3/2003 # Purpose: UNIX script which sets the variables for running PowerMart 6. it should evaluate to their $HOME variable.. The following is the code in the script.. # For all other accounts. #--------------------------------------------------------------------case $HOME in /home/autopca/autopca) JOBBASE=/usr/local/autopca . # The value of JOBBASE differs based on the account. the variable should evaluate to /usr/local/autopca. /home/autopca/autodba) JOBBASE=/usr/local/autopca . You will not need to do anything with this script. For AUTOSYS # and AUTODBA.source for the scripts on a machine.2 # when called from a shell script (ie. #------------------------------------------#Set up the Informatica Variables #------------------------------------------export MACHINE=`hostname` export SHLIB_PATH=/usr/local/pmserver/informatica/pm/infoserver export PM_HOME=/usr/local/pmserver/informatica/pm/infoserver #--------------------------------------------------------------------# Set the environment variables needed for scheduling jobs. esac . *) JOBBASE=$HOME .. script run by Autosys).

it’s rejected. Please follow the script exactly.r. *10/6/04 . DWDAS_LOAD_dssqa wflw_m_CENTER_INSTITUTE).sh contains code to trap the return code of the script that indicated success or failure. Following is the contents of test_etl_config: ETL_USER:etlguy ETL_PWD:ou812 This file (your password file) must be located in your team directory under the remote_accts folder (i. In the script example. 4. 3. The only thing that will need to be changed in this section is the folder name and the workflow within the folder that is being executed (i. The second section of etl_unix_shell_script. Regular Expressions Naveen 23 Apr 2011 What Are Regular Expressions? A regular expression is a pattern template you define that a Linux utility Uses to filter text. The final section of etl_unix_shell_script. The folder permissions on the Production machine will only permit PCA’s access to this folder. If the data matches the pattern.e. A Linux utility (such as the sed editor or the gawk program)matches the regular expression pattern against data as that data flows Into the utility. The regular expression pattern makes use of wildcard characters to represent one or more characters in the data stream.-) on this file.Updated to generalize the scheduling tool used to run the shell scripts as UC4 has been chosen to replace Autosys as the scheduling tool used to run PowerMart workflows.. the filename test_etl_config contains the username and password to be used when running the workflow.sh contains the command to run the workflow in PowerCenter. /usr/local/autopca/dss/remote_accts/)..sh sets up ETL parameters for username and password usage by PowerCenter when running the workflow. .. The username and password are no longer stored as part of the main shell script. *8/27/03 – Added ‘-wait’ parameter to the pmcmd command line to start the scheduled job. If the data doesn’t match the pattern. it’s accepted for processing. The permissions should be 6-4-0 (rw. The third section of etl_unix_shell_script.e.export JOBBASE 2. Types of regular expressions: .

00 $ . if you want to search for a dollar sign in your text. $ echo "This is a test" | gawk ’/trial/{print $0}’ $ Eg 2: Special characters The special characters recognized by regular expressions are: .*[]^${}?|() For example.There are two popular regular expression engines:   The POSIX Basic Regular Expression (BRE) engine The POSIX Extended Regular Expression (ERE) engine Defining BRE Patterns: The most basic BRE pattern is matching text characters in a data stream. $ echo "This is a test" | sed -n ’/trial/p’ $ $ echo "This is a test" | gawk ’/test/{print $0}’ This is a test.00 $ sed -n ’/\$/p’ data2 The cost is $4. just precede it with a backslash character: $ cat data2 The cost is $4. Eg 1: Plain text $ echo "This is a test" | sed -n ’/test/p’ This is a test.

$ echo "This is a good book" | sed -n ’/book$/p’ This is a good book $ echo "This book is good" | sed -n ’/book$/p’ $ Eg 4: Using ranges You can use a range of characters within a character class by using the dash symbol. Eg 1: The question mark The question mark indicates that the preceding character can appear zero or one time.Eg 3: Looking for the ending The dollar sign ($) special character defines the end anchor. but that’s all. The gawk program recognizes the ERE patterns. but the sed editor doesn’t. Now you can simplify the zip code example by specifying a range of digits: $ sed -n ’/^[0-9][0-9][0-9][0-9][0-9]$/p’ data8 60633 46201 45902 $ Extended Regular Expressions: The POSIX ERE patterns include a few additional symbols that are used by some Linux applications and utilities. It doesn’t match repeating occurrences of the character: $ echo "bt" | gawk ’/be?t/{print $0}’ bt $ echo "bet" | gawk ’/be?t/{print $0}’ Bet .

The format for using the pipe symbol is: expr1|expr2|. Here’s an example of this: $ echo "The cat is asleep" | gawk ’/cat|dog/{print $0}’ The cat is asleep $ echo "The dog is asleep" | gawk ’/cat|dog/{print $0}’ . the text passes. If none of the patterns match. The pattern doesn’t match if the character is not present: $ echo "beeet" | gawk ’/be+t/{print $0}’ beeet $ echo "beet" | gawk ’/be+t/{print $0}’ beet $ echo "bet" | gawk ’/be+t/{print $0}’ bet $ echo "bt" | gawk ’/be+t/{print $0}’ $ Eg 3: The pipe symbol The pipe symbol allows to you to specify two or more patterns that the regular expression engine uses in a logical OR formula when examining the data stream. the data stream text fails.. but must be present at least once.$ echo "beet" | gawk ’/be?t/{print $0}’ $ $ echo "beeet" | gawk ’/be?t/{print $0}’ $ Eg 2: The plus sign The plus sign indicates that the preceding character can appear one ormore times. If any of the patterns match the data stream text..

The basic idea is shown here. the group is treated like a standard character. You can apply a special character to the group just as you would to a regular character.The dog is asleep $ echo "The sheep is asleep" | gawk ’/cat|dog/{print $0}’ $ Eg 4: Grouping expressions When you group a regular expression pattern.ksh bye END_FTP Reactions: Process a File line by line . For example: $ echo "Sat" | gawk ’/Sat(urday)?/{print $0}’ Sat $ echo "Saturday" | gawk ’/Sat(urday)?/{print $0}’ Saturday $ Automated FTP File Transfer Naveen 22 Apr 2011 Automated FTP File Transfer : You can use a here document to script an FTP file transfer. ftp -i -v -n wilma <<END_FTP user randy mypassword binary lcd /scripts/download cd /scripts get auto_ftp_xfer.

It is intuitively obvious that the output from the previous command in the pipe is used as input to the next command in the pipe. if I execute the df command to list file system statistics and it scrolls across the screen out of view. I can use a pipe to send the output to the more command. function while_read_LINE { cat $FILENAME | while read LINE do echo “$LINE” : done } Each of these test loops is created as a function so that we can time each method using the shell script. the pipe stores the output in a temporary system file. the output of the cat command is used as input to the while loop and is read into the LINE variable on each loop iteration. allowing me to view the df command output one page/line at a time. as shown in Listing 2. Our use of piping output to a while loop works the same way. Then this temporary system file is used as input to the more command.Naveen 22 Apr 2011 Process a File line by line : There are Numerous methods to achieve the same one such method is discussed here : Method 1: Let’s start with the most common method that I see. as in the following command: df | more When the df command is executed.2. As an example. You could also use () C-type function definition if you wanted. which is catting a file and piping the file output to a while read loop.3. Look at the complete function in Listing 2. The pipe is the key to the popularity of this method. On each loop iteration a single line of text is read into a variable named LINE. This continuous loop will run until all of the lines in the file have been processed one at a time. .

If you should remove the echo statement and leave the no-op. I use the no-op only as a placeholder so that you can cut the function code out and paste it in one of your scripts. For beginners.while_read_LINE () { cat $FILENAME | while read LINE do echo “$LINE” : done } Whether you use the function or () technique. . I tend to use the function method more often so that when someone edits the script they will know the block of code is a function. but it always has a 0. the while loop will not fail. Within the while loop notice that I added the no-op (:) after the echo statement. the loop will not do anything either. zero. return code. however. you get the same result. A no-op (:) does nothing. the word “function” helps understanding the whole shell script a lot. The $FILENAME variable is set in the main body of the shell script.

Related Interests

'~-' <test.delimiter to distinguish b/w start and end of field. eg : tr '[a-z]' '[A-Z] <test.Sorting starts with 2nd field then with 4th field. overring the default.paste -t eg : sort -t "|" +2 test file Sorting starts from 3rd field skipping 2nd field. eg : sort -t \| +2r test file The above command can be written in another way. eg : sort -t "|" +1 -2 +3 <> Sorting based on different field as in case of order by clause. Lower case letters.txt abc_sort.2. -d delete all occurrence .. -n eg : sort -n <> Numeric sort.txt translate all | with ~ and \ with . 5. -2 indicate to stop the sorting after 2nd field and resume it with 3rd field. eg:paste -d "|" <> <> 6.txt save sorted data in file. -o eg : sort -o abc. -u eg : sort -u <> Unique sort. -d deliminator.

txt 7. ls -lu time of last access touch -a 01290415 <file>.wall wall -g dba "hello" 11.Change Date date 09181754 10. eg: cut -d "|" -f3 <>|sort|uniq -d -c duplicate count.Changing time stamp touch mon date hrs mins <file>.uniq of | . eg : cut -d "|" -f3|sort|uniq -c 8. eg : cut -d "|" -f3 <>|sort|uniq -u -d select only dup records. . 9. shutdown -y -g0 immediate shutdown. ls -lt time of last modification touch -m 01290430 <file>. du to selectively send msg to dba group. shutdown -r now shutdown immediate and reboot. shutdown 17:30 shutdown at 17:30. Disk usage.shutdown shutdown -g2 12. -u remove duplicate. power down after 2 mins. shutdown -y -g0 -i6 shutdown and reboot (init level 6). Unique require sorted file as input.eg : tr -d '|' test.

-size. -mtime -2 -print find file modi in less then 2 days. -mtime +20 | xargs -n20 -p -t rm -f remove at max 20 files in batch and in interactive mode. \( -name "*. xargs -n -p –t eg:find . before removing prompt for confirmation.lst file '-mtime = mod time eg: find . Pattern Searching .13. -name *. remove the files which are not modi for last 20 days -ok eg: find . -mtime +20 | xargs rm -f will be executed only once. -exec eg: find .log -prune exe – directory. -size +2048 -print files greater then x blocks.sh" -o -name "*. -prune don't descend exe eg: find . -type eg: find / -name log -type f -print f for file and d for directory. find <loc> <option> <pattern> <action> find in root dir abc in emp. -atime +365 -print find the file not accessed in last 1 year.find du /home/expimp/create_db tree output for each directory inside. xargs remove all file rm eg: find . du -s //home/expimp/create_db summary. print. 'atime = access time eg: find .lst" \) -print double quotes necessary. eg: find . -atime +180 -ok rm -f {} \. ! –newer eg: find / -name "*. -a (and) -o (OR) eg: find . -atime +180 -ok rm -f {} \.pl" ! -newer last_backup -print file modi before last_backup.

$ Represent all lines in the file. Repeat the previous command :1. -l display files containing record. -i ignore case.10s/gagan/deep/g search between lines 3 and 10 : . $s/<search string>/<Replace String >/g Pattern search and replacement. [PQR] match any single character. : $s/gagan/deep/gc c Ask for confirmation for replacement grep -c counting occurrence.Naveen 24 Mar 2011 Commands Options Description / /Unix Forward search of Unix keyword in file ? ?Unix Backward search of Unix keyword in file n Repeat the last search . g Stands for globally :3. -v skip records that contain directory. -n display line number for record.s/gagan/deep/g Only the current line. . 1. : $s/gagan/deep/g Only the last line.

? Matches zero or one occurrence of previous character.pattern stored in file eg(prashant|admin| director) Fgrep + Matches one or more occurrence of previous character. {a-Z A-Z 0-9} match any single character.txt (like dasgupta & sengupta) egrep -f Huge list of pattern search <pattern_file_name> can passed in the form of test1. ls –l |grep “^d” Prints only directories. <pat>$ ending with pattern. ^<pat> beginning with pattern.txt match zero or one occurrence. egrep '[aA]gg?[ar] [ar]wal' test1.txt match eap1 or eap2 (finds prashant or line with director) egrep egrep (das|sen)gupta match exp x1x3 or x2x3 test1.[c1-c2] match char with ASCII range [^PQR] match single character which is not PQR. egrep prashant| director test1. egrep '[aA]g+[ar] [ar]wal' test1.txt file name .txt match one or more occurrence matches ag & agg. fgrep and egrep accepts multiple pattern both form command line and a file but unlike grep and egrep does not accept regular .

[!x-z] Matches single character that is not within the ASCII range of character x and z .>. ls -l chap? Matches all the files with only 5 character name and should start with chap. ls -l chap* Matches all the files which starts with chap. ? Matches single character. [ !ijk ] Matches single character that is not i or j or k [x-z] Matches single character that is not within the ASCII range of character x and z. [ ijk ] Matches single character either i or j or k. ls -x chap* Matches all the files which starts with chap and prints in multi column way. * does not match all files beginning with dot <.expression. fgrep -f pattern file emp file Faster than grep and egrep family Pattern Matching Naveen 25 Mar 2011 Command Options * Description Matches any number of character including NONE.

cat chap[!0 .ist Print all the files which end with ist extensions.. ls -l chap[!0 . ls *./bin Moves all the files to bin directory. ls .>.9] Matches all file names beginning with alphabet chap and not ending with any number.4] Range specification is also available. cp chap?? abc Copy all files starts with chap to abc directory. Escaping Backslash ( \ ) Pipe | Playing with file names which uses meta character in their file name. ls -l [ a – z A-Z] Matches all file names beginning with alphabet irrespective of case. ls . ls -l * * does not match all files beginning with dot <.9] Concatenates all the files beginning with chap and not ending with number. To pass the standard output of one command as the .l chap* Print all files whose names start with chap but not the one whose name is chap*.???* The above problem can be solved with specifying first few character using meta character <?> explicitly.ls -l chap0[1 . mv * .l chap\* The above problem can be solved by escaping the special character. cmp chap[12] Compares file chap1 and chap2. ls -l .

. echo $z shell concatenate two variable. b=cd. eg: $10 echo "$10" eg: 0 Control Structures Naveen 25 Mar 2011 Shell is looking for $1 variable which is undefined so passes null for this. $1 is part of positional parameter. Shell Variable Shell variables are initialized to null value < by default > so it returns null. a=ab. z=$a$b. All words starts with $ are considered as variable unless single quoted or escaped. Tee who | wc -l Output of who command <three users> passed as input to wc which count the number of lines present.standard input to another. who | tee users list Tee saves the output of who command in user list as well as display it also. echo '$10' All words starts with $ are considered as variable unless single quoted or escaped.

.

Sample Unix shell Scripts Naveen 10 Apr 2011 #ksh: JobNum.sh #Author: Prasad Degela #Date: 03/13/2006 #Reviewed by By: #Date: #Project: Appeals & Grivances Tracking ############################################################################## ###### #This script will call .env file to get common variables. # $1 = environment (DEV) ############################################################################## ###### #set -x ############################################################################## ###### . # SET PARAMETERS .env inboxdir=$PROJECTDIR/qnxt/inbox srcfiledir=$PROJECTDIR/qnxt/estage errorfiledir=$PROJECTDIR/qnxt/error tempfiledir=$PROJECTDIR/nice/tstage . /etldata/aagt/common/scripts/aagt.Part 1 # These parameters are provided for all interfaces.

txt .gz $ARCHFILEDIR rm -f $pfilename.gz rm -f TRAIL*.tempfiledirqnxt=$PROJECTDIR/qnxt/tstage ERROR_EXIT_STATUS=99 SUCCESS_EXIT_STATUS=0 echo "Control Moved to the Inbox Directory = "$inboxdir cd $inboxdir fileconv=`echo "PDP*.txt"` echo "fileconv = "$fileconv files=`ls -tr $fileconv` if [[ $? -ne 0 ]] then echo "No Source File in the InBox "$inboxdir exit $SUCCESS_EXIT_STATUS fi echo "List Of Files in the Inbox Directory "$inboxdir echo "{ $files }" for pfilename in $files do cd $inboxdir cp $pfilename $srcfiledir gzip $pfilename cp $pfilename.

log"` ############################################################################## ###### # RESET AND RUN job sequencer # ############################################################################## ###### $DSBINDIR/dsjob -jobinfo $DSPROJECT $pDSjobname.echo "Source File Name Is "$pfilename pDSjobname="sjAG01" pINVOKE_ID=$pfilename pJobStatusFile=`echo $pfilename".stat"` pJobLogFile=`echo $pfilename". $pINVOKE_ID echo "************************* Reset the Job Sequencer *******************" fi echo AGDB: $AGDB echo AGDBUserID: $AGDBUserID echo ORADB: $ORADB echo ORADBUSRID: $ORADBUSRID .$pINVOKE_ID > $LOGFILEDIR/ $pJobStatusFile JOBSTATUS=`grep "Job Status" $LOGFILEDIR/$pJobStatusFile | cut -f2 -d '('|cut -f1 -d ')'` echo "$pDSjobname Job status code is "$JOBSTATUS if [[ $JOBSTATUS = 3 ]] then echo "Job Status = "$JOBSTATUS $DSBINDIR/dsjob -run -mode RESET -wait -jobstatus $DSPROJECT $pDSjobname.

echo NICEDB: $NICEDB echo NICEDBUserID: $NICEDBUserID echo SrcFile: $pfilename echo SrcFileDir: $SRCFILEDIR echo TempFileDirectory: $TEMPFILEDIR echo TempFileDirectoryqnxt:$TEMPFILEDIRQNXT echo ErrorFileDirectory: $ERRORFILEDIR echo ScriptFileDirectory: $SCRIPTFILEDIR echo "calling $Jobname Sequence" $DSBINDIR/dsjob -run \ -param AGDB=$AGDB \ -param AGDBUserID=$AGDBUserID \ -param AGDBPswd=$AGDBPswd \ -param ORADB=$ORADB \ -param ORADBUSRID=$ORADBUSRID \ -param ORADBPswd=$ORADBPswd \ -param NICEDB=$NICEDB \ -param NICEDBUserID=$NICEDBUserID \ -param NICEDBPswd=$NICEDBPswd \ -param SrcFile=$pfilename \ -param SrcFileDir=$SRCFILEDIR \ -param TempFileDirectory=$TEMPFILEDIR \ -param TempFileDirectoryqnxt=$TEMPFILEDIRQNXT \ .

$pINVOKE_ID $DSBINDIR/dsjob -jobinfo $DSPROJECT $pDSjobname.$pINVOKE_ID > $LOGFILEDIR/ $pJobStatusFile $DSBINDIR/dsjob -logsum $DSPROJECT $pDSjobname.1.3 .$INVOKE_ID > $LOGFILEDIR/ $pJobLogFile JOBSTATUS=`grep "Job Status" $LOGFILEDIR/$pJobStatusFile | cut -f2 -d '('|cut -f1 -d ')'` echo "$pDSjobname Job status code is "$JOBSTATUS if [[ $JOBSTATUS = 1 ]] then echo "Job Status = "$JOBSTATUS echo "Removing File from $srcfiledir on successful processing of file $pfilename" cd $srcfiledir rm -f $pfilename else exit $ERROR_EXIT_STATUS fi done echo 99 END OF THE PROG exit $SUCCESS_EXIT_STATUS # ################################################################## Standards for ETL UNIX Shell Scripts for use with PowerCenter 7.-param ErrorFileDirectory=$ERRORFILEDIR \ -param ScriptFileDirectory=$SCRIPTFILEDIR \ -wait -jobstatus $DSPROJECT $pDSjobname.

etc.sh. siq.) # # Example usage: etl_unix_shell_script.sh # Author: Kevin Gillenwater # Date: 7/24/2003 # Purpose: Sample UNIX shell script to load environment variables # needed to run PowerMart jobs. This script has been provided as an example and is named etl_unix_shell_script.3 Scripting Standards (for PowerCenter version 7. hr.3): Scripting standards include the use of a UNIX shell script. ud.1. # # $1 = Project Id Parameter (ie. # Program: etl_unix_shell_script.Naveen 10 Apr 2011 Standards for ETL UNIX Shell Scripts for use with PowerCenter 7. pass username and password variables # and start the job using the pmcmd command line. and a separate file which contains the username and password for the user called in the script.1. Following is the script and explanation. which the scheduling tool uses to start the PowerCenter job.sh dss # # NOTE: Enter the Project ID parameter that is designated in the # directory structure for your team # (ie. The following is a template that should be used to create scripts for new scheduled jobs. dss. dss would be used for the DWDAS team as the # directory is /usr/local/autopca/dss/) #----------------------------------------------------------------- .

/usr/local/bin/set_pm_var. and will provide one . will provide ease of maintenance if changes need to be made to PowerCenter variables. located on each machine (Leisure for Production and Glance for Development). The set_pm_var.config ETL_USER=`grep ETL_USER $ETL_CONFIG_FILE | awk -F: '{print $2}'` ETL_PWD=`grep ETL_PWD $ETL_CONFIG_FILE | awk -F: '{print $2}'` #----------------------------------------------------------------# Start the job #----------------------------------------------------------------$PM_HOME/pmcmd startworkflow -u $ETL_USER -p $ETL_PWD -s $MACHINE:4001 -f DWDAS_ LOAD_dssqa –wait s_m_CENTER_INSTITUTE #----------------------------------------------------------------# Trap the return code #----------------------------------------------------------------rc=$? if [[ $rc -ne 0 ]] then exit $rc fi Notes Regarding the Script/Standards: 1.sh #----------------------------------------------------------------# Read ETL configuration parameters from a separate file: #----------------------------------------------------------------ETL_CONFIG_FILE=$JOBBASE/$1/remote_accts/test_etl.sh to set up the PowerCenter variables used in the session (. /usr/local/bin/set_pm_var.sh. The beginning of each script should call and execute the script set_pm_var.# Call the script to set up the Informatica Environment Variables: #----------------------------------------------------------------.sh).

it is for informational purposes only: # Program: set_pm_var.sh # Author: Kevin Gillenwater # Date: 7/3/2003 # Purpose: UNIX script which sets the variables for running PowerMart 6. it should evaluate to their $HOME variable.. The following is the code in the script.. # For all other accounts. #--------------------------------------------------------------------case $HOME in /home/autopca/autopca) JOBBASE=/usr/local/autopca . # The value of JOBBASE differs based on the account. the variable should evaluate to /usr/local/autopca. /home/autopca/autodba) JOBBASE=/usr/local/autopca . You will not need to do anything with this script. For AUTOSYS # and AUTODBA.source for the scripts on a machine.2 # when called from a shell script (ie. #------------------------------------------#Set up the Informatica Variables #------------------------------------------export MACHINE=`hostname` export SHLIB_PATH=/usr/local/pmserver/informatica/pm/infoserver export PM_HOME=/usr/local/pmserver/informatica/pm/infoserver #--------------------------------------------------------------------# Set the environment variables needed for scheduling jobs. esac . *) JOBBASE=$HOME .. script run by Autosys).

it’s rejected. Please follow the script exactly.r. *10/6/04 . DWDAS_LOAD_dssqa wflw_m_CENTER_INSTITUTE).sh contains code to trap the return code of the script that indicated success or failure. Following is the contents of test_etl_config: ETL_USER:etlguy ETL_PWD:ou812 This file (your password file) must be located in your team directory under the remote_accts folder (i. In the script example. 4. 3. The only thing that will need to be changed in this section is the folder name and the workflow within the folder that is being executed (i. The second section of etl_unix_shell_script. Regular Expressions Naveen 23 Apr 2011 What Are Regular Expressions? A regular expression is a pattern template you define that a Linux utility Uses to filter text. The final section of etl_unix_shell_script. The folder permissions on the Production machine will only permit PCA’s access to this folder. If the data matches the pattern.e. A Linux utility (such as the sed editor or the gawk program)matches the regular expression pattern against data as that data flows Into the utility. The regular expression pattern makes use of wildcard characters to represent one or more characters in the data stream.-) on this file.Updated to generalize the scheduling tool used to run the shell scripts as UC4 has been chosen to replace Autosys as the scheduling tool used to run PowerMart workflows.. the filename test_etl_config contains the username and password to be used when running the workflow.sh contains the command to run the workflow in PowerCenter. /usr/local/autopca/dss/remote_accts/)..sh sets up ETL parameters for username and password usage by PowerCenter when running the workflow. .. The username and password are no longer stored as part of the main shell script. *8/27/03 – Added ‘-wait’ parameter to the pmcmd command line to start the scheduled job. If the data doesn’t match the pattern. it’s accepted for processing. The permissions should be 6-4-0 (rw. The third section of etl_unix_shell_script.e.export JOBBASE 2. Types of regular expressions: .

00 $ . if you want to search for a dollar sign in your text. $ echo "This is a test" | gawk ’/trial/{print $0}’ $ Eg 2: Special characters The special characters recognized by regular expressions are: .*[]^${}?|() For example.There are two popular regular expression engines:   The POSIX Basic Regular Expression (BRE) engine The POSIX Extended Regular Expression (ERE) engine Defining BRE Patterns: The most basic BRE pattern is matching text characters in a data stream. $ echo "This is a test" | sed -n ’/trial/p’ $ $ echo "This is a test" | gawk ’/test/{print $0}’ This is a test.00 $ sed -n ’/\$/p’ data2 The cost is $4. just precede it with a backslash character: $ cat data2 The cost is $4. Eg 1: Plain text $ echo "This is a test" | sed -n ’/test/p’ This is a test.

$ echo "This is a good book" | sed -n ’/book$/p’ This is a good book $ echo "This book is good" | sed -n ’/book$/p’ $ Eg 4: Using ranges You can use a range of characters within a character class by using the dash symbol. Eg 1: The question mark The question mark indicates that the preceding character can appear zero or one time.Eg 3: Looking for the ending The dollar sign ($) special character defines the end anchor. but that’s all. The gawk program recognizes the ERE patterns. but the sed editor doesn’t. Now you can simplify the zip code example by specifying a range of digits: $ sed -n ’/^[0-9][0-9][0-9][0-9][0-9]$/p’ data8 60633 46201 45902 $ Extended Regular Expressions: The POSIX ERE patterns include a few additional symbols that are used by some Linux applications and utilities. It doesn’t match repeating occurrences of the character: $ echo "bt" | gawk ’/be?t/{print $0}’ bt $ echo "bet" | gawk ’/be?t/{print $0}’ Bet .

The format for using the pipe symbol is: expr1|expr2|. Here’s an example of this: $ echo "The cat is asleep" | gawk ’/cat|dog/{print $0}’ The cat is asleep $ echo "The dog is asleep" | gawk ’/cat|dog/{print $0}’ . the text passes. If none of the patterns match. The pattern doesn’t match if the character is not present: $ echo "beeet" | gawk ’/be+t/{print $0}’ beeet $ echo "beet" | gawk ’/be+t/{print $0}’ beet $ echo "bet" | gawk ’/be+t/{print $0}’ bet $ echo "bt" | gawk ’/be+t/{print $0}’ $ Eg 3: The pipe symbol The pipe symbol allows to you to specify two or more patterns that the regular expression engine uses in a logical OR formula when examining the data stream. the data stream text fails.. but must be present at least once.$ echo "beet" | gawk ’/be?t/{print $0}’ $ $ echo "beeet" | gawk ’/be?t/{print $0}’ $ Eg 2: The plus sign The plus sign indicates that the preceding character can appear one ormore times. If any of the patterns match the data stream text..

The basic idea is shown here. the group is treated like a standard character. You can apply a special character to the group just as you would to a regular character.The dog is asleep $ echo "The sheep is asleep" | gawk ’/cat|dog/{print $0}’ $ Eg 4: Grouping expressions When you group a regular expression pattern.ksh bye END_FTP Reactions: Process a File line by line . For example: $ echo "Sat" | gawk ’/Sat(urday)?/{print $0}’ Sat $ echo "Saturday" | gawk ’/Sat(urday)?/{print $0}’ Saturday $ Automated FTP File Transfer Naveen 22 Apr 2011 Automated FTP File Transfer : You can use a here document to script an FTP file transfer. ftp -i -v -n wilma <<END_FTP user randy mypassword binary lcd /scripts/download cd /scripts get auto_ftp_xfer.

It is intuitively obvious that the output from the previous command in the pipe is used as input to the next command in the pipe. if I execute the df command to list file system statistics and it scrolls across the screen out of view. I can use a pipe to send the output to the more command. function while_read_LINE { cat $FILENAME | while read LINE do echo “$LINE” : done } Each of these test loops is created as a function so that we can time each method using the shell script. the pipe stores the output in a temporary system file. the output of the cat command is used as input to the while loop and is read into the LINE variable on each loop iteration. allowing me to view the df command output one page/line at a time. as shown in Listing 2. Our use of piping output to a while loop works the same way. Then this temporary system file is used as input to the more command.Naveen 22 Apr 2011 Process a File line by line : There are Numerous methods to achieve the same one such method is discussed here : Method 1: Let’s start with the most common method that I see. as in the following command: df | more When the df command is executed.2. As an example. You could also use () C-type function definition if you wanted. which is catting a file and piping the file output to a while read loop.3. Look at the complete function in Listing 2. The pipe is the key to the popularity of this method. On each loop iteration a single line of text is read into a variable named LINE. This continuous loop will run until all of the lines in the file have been processed one at a time. .

If you should remove the echo statement and leave the no-op. I use the no-op only as a placeholder so that you can cut the function code out and paste it in one of your scripts. For beginners.while_read_LINE () { cat $FILENAME | while read LINE do echo “$LINE” : done } Whether you use the function or () technique. . I tend to use the function method more often so that when someone edits the script they will know the block of code is a function. but it always has a 0. the while loop will not fail. Within the while loop notice that I added the no-op (:) after the echo statement. the loop will not do anything either. zero. return code. however. you get the same result. A no-op (:) does nothing. the word “function” helps understanding the whole shell script a lot. The $FILENAME variable is set in the main body of the shell script.

","static_promo_banner_cta_url":"https://www.scribd.com/"},"eligible_for_exclusive_trial_roadblock":false,"eligible_for_seo_roadblock":false,"exclusive_free_trial_roadblock_props_path":"/doc-page/exclusive-free-trial-props/315578693","flashes":[],"footer_props":{"urls":{"about":"/about","press":"/press","blog":"http://literally.scribd.com/","careers":"/careers","contact":"/contact","plans_landing":"/subscribe","referrals":"/referrals?source=footer","giftcards":"/giftcards","faq":"/faq","accessibility":"/accessibility-policy","faq_paths":{"accounts":"https://support.scribd.com/hc/sections/202246346","announcements":"https://support.scribd.com/hc/sections/202246066","copyright":"https://support.scribd.com/hc/sections/202246086","downloading":"https://support.scribd.com/hc/articles/210135046","publishing":"https://support.scribd.com/hc/sections/202246366","reading":"https://support.scribd.com/hc/sections/202246406","selling":"https://support.scribd.com/hc/sections/202246326","store":"https://support.scribd.com/hc/sections/202246306","status":"https://support.scribd.com/hc/en-us/articles/360001202872","terms":"https://support.scribd.com/hc/sections/202246126","writing":"https://support.scribd.com/hc/sections/202246366","adchoices":"https://support.scribd.com/hc/articles/210129366","paid_features":"https://support.scribd.com/hc/sections/202246306","failed_uploads":"https://support.scribd.com/hc/en-us/articles/210134586-Troubleshooting-uploads-and-conversions","copyright_infringement":"https://support.scribd.com/hc/en-us/articles/210128946-DMCA-copyright-infringement-takedown-notification-policy","end_user_license":"https://support.scribd.com/hc/en-us/articles/210129486","terms_of_use":"https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"},"publishers":"/publishers","static_terms":"/terms","static_privacy":"/privacy","copyright":"/copyright","ios_app":"https://itunes.apple.com/us/app/scribd-worlds-largest-online/id542557212?mt=8&uo=4&at=11lGEE","android_app":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0&hl=en","books":"/books","sitemap":"/directory"}},"global_nav_props":{"header_props":{"logo_src":"/images/landing/home2_landing/scribd_logo_horiz_small.svg","root_url":"https://www.scribd.com/","search_term":"","small_logo_src":"/images/logos/scribd_s_logo.png","uploads_url":"/upload-document","search_props":{"redirect_to_app":true,"search_url":"/search","query":"","search_page":false}},"user_menu_props":null,"sidebar_props":{"urls":{"bestsellers":"https://www.scribd.com/bestsellers","home":"https://www.scribd.com/","saved":"/saved","subscribe":"/archive/pmp_checkout?doc=315578693&metadata=%7B%22context%22%3A%22pmp%22%2C%22action%22%3A%22start_trial%22%2C%22logged_in%22%3Afalse%2C%22platform%22%3A%22web%22%7D","top_charts":"/bestsellers","upload":"https://www.scribd.com/upload-document"},"categories":{"book":{"icon":"icon-ic_book","icon_filled":"icon-ic_book_fill","url":"https://de.scribd.com/books","name":"Books","type":"book"},"news":{"icon":"icon-ic_articles","icon_filled":"icon-ic_articles_fill","url":"https://de.scribd.com/news","name":"News","type":"news"},"audiobook":{"icon":"icon-ic_audiobook","icon_filled":"icon-ic_audiobook_fill","url":"https://de.scribd.com/audiobooks","name":"Audiobooks","type":"audiobook"},"magazine":{"icon":"icon-ic_magazine","icon_filled":"icon-ic_magazine_fill","url":"https://de.scribd.com/magazines","name":"Magazines","type":"magazine"},"document":{"icon":"icon-ic_document","icon_filled":"icon-ic_document_fill","url":"https://de.scribd.com/docs","name":"Documents","type":"document"},"sheet_music":{"icon":"icon-ic_songbook","icon_filled":"icon-ic_songbook_fill","url":"https://de.scribd.com/sheetmusic","name":"Sheet Music","type":"sheet_music"},"summary":{"icon":"icon-ic_globalnav_snapshot","icon_filled":"icon-ic_globalnav_snapshot_fill","url":"https://de.scribd.com/snapshots","name":"Snapshots","type":"summary"}},"nav_categories":["mixed","book","audiobook","magazine","document","sheet_music"],"selected_content_type":"mixed","username":"","search_overlay_props":{"search_input_props":{"focused":false,"keep_suggestions_on_blur":false}}}},"recommenders":{"related_titles_recommender":{"ids":[367144617,335005010,38900229,231179824,293991986,53209083,331618810,305838527,265955237,62237240,57832817,86395857,173042960,16031446,51156902,79573518,24829684,102274550,14073864,59852490,58518907,203847596,79438493,306389634,294325776,39729975,321772100,292612242,180833485,86592491,374053440,376598374,374538461,379200737,376737432,379200024,374538128,374538227,385569543,374053294,374051776,374053138,379200930,376737561,379200391,352917039,344186527,368928177,343044099,343043970,374051739,351371202,346161552,351371187,344187175,345918093,351372010,343043920,345918131,343044026],"title_link":null,"title":null,"track_opts":{"compilation_id":"to/1ODV/hQbuQt/BCSN0ZDM2zpg=","module_id":"Yo46fiy8e9T12Mtev0dM1n+BrdM=","widget_name":"right sidebar","track_id":"flattened_recommender"}},"footer_recommenders":{"recommenders":[{"ids":[367144617,335005010,38900229,231179824,293991986,53209083,331618810,305838527,265955237,62237240,57832817,86395857,173042960,16031446,51156902,79573518,24829684,102274550,14073864,59852490,58518907,203847596,79438493,306389634,294325776,39729975,321772100,292612242,180833485,86592491],"title_link":null,"title":"Documents Similar To Introduction to Shell Scripting","track_opts":{"compilation_id":"to/1ODV/hQbuQt/BCSN0ZDM2zpg=","module_id":"2rr9T3su2XFrOwA3HmCHWKUKvUg=","widget_name":"document_carousel"}},{"ids":[374053440,376598374,374538461,379200737,376737432,379200024,374538128,374538227,385569543,374053294,374051776,374053138,379200930,376737561,379200391,352917039,344186527,368928177,343044099,343043970,374051739,351371202,346161552,351371187,344187175,345918093,351372010,343043920,345918131,343044026],"title_link":null,"title":"More From srimkb","track_opts":{"compilation_id":"to/1ODV/hQbuQt/BCSN0ZDM2zpg=","module_id":"9UhlEZTcJv5sA8s2HLr/c0JQCRw=","widget_name":"document_carousel"}}]},"seo_new_docs_recommenders":{"recommenders":[]},"documents":{"14073864":{"type":"document","id":14073864,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/14073864/149x198/efddb46ad5/1399767013?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/14073864/298x396/bf220eb39f/1399767013?v=1","title":"CVM_Lab_01","short_title":"CVM_Lab_01","author":"Adedayo","tracking":{"object_type":"document","object_id":14073864,"track":"flattened_recommender","doc_uuid":"TOOGusp+VzfO12sPdkgBn63RJVY="},"url":"https://www.scribd.com/document/14073864/CVM-Lab-01","top_badge":null},"16031446":{"type":"document","id":16031446,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/16031446/149x198/2e319a7597/1337915900?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/16031446/298x396/cf16c8f5e1/1337915900?v=1","title":"6513292 Mrits Unix and Shell Programming Lab Manual for 2nd Year BTech JNTU L Ramkumar MRITS","short_title":"6513292 Mrits Unix and Shell Programming Lab Manual for 2nd Year BTech JNTU L Ramkumar MRITS","author":"sukumar552","tracking":{"object_type":"document","object_id":16031446,"track":"flattened_recommender","doc_uuid":"PVzDCev6xHz8x58dnje3KkUn5Qo="},"url":"https://www.scribd.com/document/16031446/6513292-Mrits-Unix-and-Shell-Programming-Lab-Manual-for-2nd-Year-BTech-JNTU-L-Ramkumar-MRITS","top_badge":null},"24829684":{"type":"document","id":24829684,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/24829684/149x198/ebea03baab/1381720761?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/24829684/298x396/aea5247f11/1381720761?v=1","title":"UT Dallas Syllabus for cs3375.001.07f taught by Kendra Cooper (kcooper)","short_title":"UT Dallas Syllabus for cs3375.001.07f taught by Kendra Cooper (kcooper)","author":"UT Dallas Provost's Technology Group","tracking":{"object_type":"document","object_id":24829684,"track":"flattened_recommender","doc_uuid":"ASUiTb6+kQaVA81nVlKc+6XFExw="},"url":"https://www.scribd.com/document/24829684/UT-Dallas-Syllabus-for-cs3375-001-07f-taught-by-Kendra-Cooper-kcooper","top_badge":null},"38900229":{"type":"document","id":38900229,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/38900229/149x198/fad6c50a6f/1286470202?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/38900229/298x396/0b9e03eb95/1286470202?v=1","title":"Intro Router Commands Lab","short_title":"Intro Router Commands Lab","author":"earlge","tracking":{"object_type":"document","object_id":38900229,"track":"flattened_recommender","doc_uuid":"+tgVIDAouxk4hlxAM5JM2yq0Jwo="},"url":"https://www.scribd.com/document/38900229/Intro-Router-Commands-Lab","top_badge":null},"39729975":{"type":"document","id":39729975,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/39729975/149x198/4c9c955865/1355735678?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/39729975/298x396/941e49eb39/1355735678?v=1","title":"IBM CLI DS3000 DS4000 DS5000","short_title":"IBM CLI DS3000 DS4000 DS5000","author":"Guillermo Peña Cardaño","tracking":{"object_type":"document","object_id":39729975,"track":"flattened_recommender","doc_uuid":"0uAkbaDZKTJCFdh8LIIhKR8knm4="},"url":"https://www.scribd.com/document/39729975/IBM-CLI-DS3000-DS4000-DS5000","top_badge":null},"51156902":{"type":"document","id":51156902,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/51156902/149x198/e6ae164342/1440997453?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/51156902/298x396/a94b045475/1440997453?v=1","title":"Gioithieu_csh","short_title":"Gioithieu_csh","author":"sudokubk38","tracking":{"object_type":"document","object_id":51156902,"track":"flattened_recommender","doc_uuid":"6Q4afXO62hnWg3DzEaFOlYJwWYc="},"url":"https://www.scribd.com/document/51156902/Gioithieu-csh","top_badge":null},"53209083":{"type":"document","id":53209083,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/53209083/149x198/f384891c23/1303071696?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/53209083/298x396/61ca807ccf/1303071696?v=1","title":"assignment","short_title":"assignment","author":"Steve Bolly Chege","tracking":{"object_type":"document","object_id":53209083,"track":"flattened_recommender","doc_uuid":"6EzyTp26FQRaw7QdNQzriWrjNbY="},"url":"https://www.scribd.com/presentation/53209083/assignment","top_badge":null},"57832817":{"type":"document","id":57832817,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/57832817/149x198/1f5d30e9b4/1308056272?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/57832817/298x396/528d1c4e91/1308056272?v=1","title":"LINUX SHELL","short_title":"LINUX SHELL","author":"Syafiq Fauzi","tracking":{"object_type":"document","object_id":57832817,"track":"flattened_recommender","doc_uuid":"s1PXAD7H69ZuvDABqsG2GgMKpDM="},"url":"https://www.scribd.com/presentation/57832817/LINUX-SHELL","top_badge":null},"58518907":{"type":"document","id":58518907,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/58518907/149x198/dfff1dde57/1311857435?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/58518907/298x396/556bdda644/1311857435?v=1","title":"ai q","short_title":"ai q","author":"Paolo Oliver Obaña","tracking":{"object_type":"document","object_id":58518907,"track":"flattened_recommender","doc_uuid":"M82f2uavaB/KAjywUXs9Lfkgdxg="},"url":"https://www.scribd.com/document/58518907/ai-q","top_badge":null},"59852490":{"type":"document","id":59852490,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/59852490/149x198/a7d5882e7e/1310467543?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/59852490/298x396/8027d8cd2e/1310467543?v=1","title":"New Microsoft Word Document","short_title":"New Microsoft Word Document","author":"rama584","tracking":{"object_type":"document","object_id":59852490,"track":"flattened_recommender","doc_uuid":"xHHin/qSe6YKkTK/Henxdy0Io3Q="},"url":"https://www.scribd.com/document/59852490/New-Microsoft-Word-Document","top_badge":null},"62237240":{"type":"document","id":62237240,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/62237240/149x198/73acacca0c/1313268113?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/62237240/298x396/0cf40c049d/1313268113?v=1","title":"Unix Cslo","short_title":"Unix Cslo","author":"Sandeep Gupta","tracking":{"object_type":"document","object_id":62237240,"track":"flattened_recommender","doc_uuid":"cpZqC9iIqRS21+HP95JJUFUQNJw="},"url":"https://www.scribd.com/document/62237240/Unix-Cslo","top_badge":null},"79438493":{"type":"document","id":79438493,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/79438493/149x198/4e1ef5d4c5/1327570144?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/79438493/298x396/701ec22f04/1327570144?v=1","title":"Splunk 4.2.3 Admin","short_title":"Splunk 4.2.3 Admin","author":"jazzymoon","tracking":{"object_type":"document","object_id":79438493,"track":"flattened_recommender","doc_uuid":"sKiga44ra6jy/rU8et1DrqCE4UQ="},"url":"https://www.scribd.com/document/79438493/Splunk-4-2-3-Admin","top_badge":null},"79573518":{"type":"document","id":79573518,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/79573518/149x198/8ce512d186/1327666434?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/79573518/298x396/685d9c84f0/1327666434?v=1","title":"Fortigate Cc Tech Note","short_title":"Fortigate Cc Tech Note","author":"Anonymous JtFc6nKN","tracking":{"object_type":"document","object_id":79573518,"track":"flattened_recommender","doc_uuid":"Wp6qItmIkbM+StdwLizcxUprDls="},"url":"https://www.scribd.com/document/79573518/Fortigate-Cc-Tech-Note","top_badge":null},"86395857":{"type":"document","id":86395857,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/86395857/149x198/8988e0d3a2/1386187462?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/86395857/298x396/5d08fa1873/1386187462?v=1","title":"UNIX System Administration","short_title":"UNIX System Administration","author":"Joshua Hiwatig","tracking":{"object_type":"document","object_id":86395857,"track":"flattened_recommender","doc_uuid":"EK4P3F2V2jyAkwvmIw3p51DntDA="},"url":"https://www.scribd.com/document/86395857/UNIX-System-Administration","top_badge":null},"86592491":{"type":"document","id":86592491,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/86592491/149x198/5c485522af/1374742785?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/86592491/298x396/e822d41ab4/1374742785?v=1","title":"An 307","short_title":"An 307","author":"Neil Patel","tracking":{"object_type":"document","object_id":86592491,"track":"flattened_recommender","doc_uuid":"Y4F8KpJJ8hIsEIf3x5UzsqhI7qE="},"url":"https://www.scribd.com/document/86592491/An-307","top_badge":null},"102274550":{"type":"document","id":102274550,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/102274550/149x198/4d38fd71af/1344359472?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/102274550/298x396/1c478e7ed5/1344359472?v=1","title":"cisco1800_passwordrecovery","short_title":"cisco1800_passwordrecovery","author":"Kanth Kodali","tracking":{"object_type":"document","object_id":102274550,"track":"flattened_recommender","doc_uuid":"PFp5BTgXVfRh0wgicE33yiLl3f4="},"url":"https://www.scribd.com/document/102274550/cisco1800-passwordrecovery","top_badge":null},"173042960":{"type":"document","id":173042960,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/173042960/149x198/d65c7defbf/1380809667?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/173042960/298x396/b598e55931/1380809667?v=1","title":"Shell Symbol Meaning","short_title":"Shell Symbol Meaning","author":"jagbrama","tracking":{"object_type":"document","object_id":173042960,"track":"flattened_recommender","doc_uuid":"uugDI5t0FCNRe59bfeEC4pZ0q+8="},"url":"https://www.scribd.com/document/173042960/Shell-Symbol-Meaning","top_badge":null},"180833485":{"type":"document","id":180833485,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/180833485/149x198/5aa9c2228d/1422913042?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/180833485/298x396/edb8560602/1422913042?v=1","title":"Applied Classification.pdf","short_title":"Applied Classification.pdf","author":"Retno Aulia Vinarti","tracking":{"object_type":"document","object_id":180833485,"track":"flattened_recommender","doc_uuid":"B9Gjk+Qk6KVCwTXeMjR4q5R3VPE="},"url":"https://www.scribd.com/document/180833485/Applied-Classification-pdf","top_badge":null},"203847596":{"type":"document","id":203847596,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/203847596/149x198/ff3c4da6dd/1391340423?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/203847596/298x396/8804c66876/1391340423?v=1","title":"DG_Broker","short_title":"DG_Broker","author":"Saeed Meethal","tracking":{"object_type":"document","object_id":203847596,"track":"flattened_recommender","doc_uuid":"DH3qex0oeM/wB0a5FxcvtIn3AhA="},"url":"https://www.scribd.com/presentation/203847596/DG-Broker","top_badge":null},"231179824":{"type":"document","id":231179824,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/231179824/149x198/da675750ee/1444845698?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/231179824/298x396/d435bda04f/1444845698?v=1","title":"Rbs","short_title":"Rbs","author":"SahilKhan","tracking":{"object_type":"document","object_id":231179824,"track":"flattened_recommender","doc_uuid":"5WnPQvGGq7phiFYmIYHRFlwW2vA="},"url":"https://www.scribd.com/document/231179824/Rbs","top_badge":null},"265955237":{"type":"document","id":265955237,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/265955237/149x198/64b08acff4/1432099888?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/265955237/298x396/a3381cf0d5/1432099888?v=1","title":"Introduction to C Shell Programming","short_title":"Introduction to C Shell Programming","author":"Arjun Krishna P R","tracking":{"object_type":"document","object_id":265955237,"track":"flattened_recommender","doc_uuid":"xFGbU31oAf4p3YxL1LRl/xJK0U4="},"url":"https://www.scribd.com/document/265955237/Introduction-to-C-Shell-Programming","top_badge":null},"292612242":{"type":"document","id":292612242,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/292612242/149x198/32fed92c88/1449572968?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/292612242/298x396/5688fc7e7d/1449572968?v=1","title":"gretlguide.pdf","short_title":"gretlguide.pdf","author":"0796105632","tracking":{"object_type":"document","object_id":292612242,"track":"flattened_recommender","doc_uuid":"Jc1fKlhGvInHYCWHUx2nxvTGgO4="},"url":"https://www.scribd.com/document/292612242/gretlguide-pdf","top_badge":null},"293991986":{"type":"document","id":293991986,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/293991986/149x198/51d61e1424/1451027501?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/293991986/298x396/5704efd18e/1451027501?v=1","title":"RIS Utilities Reference","short_title":"RIS Utilities Reference","author":"balajivangaru","tracking":{"object_type":"document","object_id":293991986,"track":"flattened_recommender","doc_uuid":"PI90ANtV4yYIlwiYEIqWa7qMamA="},"url":"https://www.scribd.com/document/293991986/RIS-Utilities-Reference","top_badge":null},"294325776":{"type":"document","id":294325776,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/294325776/149x198/faa0557167/1451523581?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/294325776/298x396/c9b28c1a50/1451523581?v=1","title":"Fortigate Cli","short_title":"Fortigate Cli","author":"Giang Nguyen","tracking":{"object_type":"document","object_id":294325776,"track":"flattened_recommender","doc_uuid":"K0qvUuoSna3PRBJDQpO2pDldWaA="},"url":"https://www.scribd.com/document/294325776/Fortigate-Cli","top_badge":null},"305838527":{"type":"document","id":305838527,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/305838527/149x198/d5128fcb4a/1486678684?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/305838527/298x396/2fbbd762d2/1486678684?v=1","title":"bpj lesson 19 and exercise","short_title":"bpj lesson 19 and exercise","author":"api-307093352","tracking":{"object_type":"document","object_id":305838527,"track":"flattened_recommender","doc_uuid":"pKhHjKubbfr+oVb5Q537lSWoAqc="},"url":"https://www.scribd.com/doc/305838527/bpj-lesson-19-and-exercise","top_badge":null},"306389634":{"type":"document","id":306389634,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/306389634/149x198/6e23c9f7ba/1486649365?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/306389634/298x396/56ea06b673/1486649365?v=1","title":"bpj lesson 19 and exercise","short_title":"bpj lesson 19 and exercise","author":"api-307094458","tracking":{"object_type":"document","object_id":306389634,"track":"flattened_recommender","doc_uuid":"huzbT8K7BGZ3eubfaYvMyh02OE8="},"url":"https://www.scribd.com/doc/306389634/bpj-lesson-19-and-exercise","top_badge":null},"321772100":{"type":"document","id":321772100,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/321772100/149x198/d9344f4b91/1471733926?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/321772100/298x396/6d7aa88ca6/1471733926?v=1","title":"Word2Pdf Documentation","short_title":"Word2Pdf Documentation","author":"Antonio","tracking":{"object_type":"document","object_id":321772100,"track":"flattened_recommender","doc_uuid":"uJQ3omP7DuJQ3K0Egwhxz+IPaWM="},"url":"https://www.scribd.com/document/321772100/Word2Pdf-Documentation","top_badge":null},"331618810":{"type":"document","id":331618810,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/331618810/149x198/e0ba82cf0d/1479561079?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/331618810/298x396/73d293b56f/1479561079?v=1","title":"YourName Exam 3a","short_title":"YourName Exam 3a","author":"Yousaf Riaz","tracking":{"object_type":"document","object_id":331618810,"track":"flattened_recommender","doc_uuid":"SSMpk8KDHW1FIlK86KVWLMHU3oM="},"url":"https://www.scribd.com/document/331618810/YourName-Exam-3a","top_badge":null},"335005010":{"type":"document","id":335005010,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/335005010/149x198/f6c14659d7/1482645869?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/335005010/298x396/1e64f8de0c/1482645869?v=1","title":"Class_Inheritance_Practice.docx","short_title":"Class_Inheritance_Practice.docx","author":"siriuslot","tracking":{"object_type":"document","object_id":335005010,"track":"flattened_recommender","doc_uuid":"W0O24USqklKEGMh/T2oFuisZ+F8="},"url":"https://www.scribd.com/document/335005010/Class-Inheritance-Practice-docx","top_badge":null},"343043920":{"type":"document","id":343043920,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/343043920/149x198/1cd8d941fe/1490499155?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/343043920/298x396/410cda3d7b/1490499155?v=1","title":"x5r Txnitm Txnhdr Hist 201316","short_title":"x5r Txnitm Txnhdr Hist 201316","author":"srimkb","tracking":{"object_type":"document","object_id":343043920,"track":"flattened_recommender","doc_uuid":"6tzjCSz2Crwl0OUR4/AzhvBN1qQ="},"url":"https://www.scribd.com/document/343043920/x5r-Txnitm-Txnhdr-Hist-201316","top_badge":null},"343043970":{"type":"document","id":343043970,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/343043970/149x198/da8561543b/1490499249?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/343043970/298x396/3bd03311c4/1490499249?v=1","title":"Employment by Industry","short_title":"Employment by Industry","author":"srimkb","tracking":{"object_type":"document","object_id":343043970,"track":"flattened_recommender","doc_uuid":"PKARltndA05ME9DcNV/lYshvuTc="},"url":"https://www.scribd.com/document/343043970/Employment-by-Industry","top_badge":null},"343044026":{"type":"document","id":343044026,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/343044026/149x198/359fb17840/1490499330?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/343044026/298x396/a153849972/1490499330?v=1","title":"Retail Domain","short_title":"Retail Domain","author":"srimkb","tracking":{"object_type":"document","object_id":343044026,"track":"flattened_recommender","doc_uuid":"PGLyo3dI/2wNI1dcv3EJKVsh2QE="},"url":"https://www.scribd.com/presentation/343044026/Retail-Domain","top_badge":null},"343044099":{"type":"document","id":343044099,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/343044099/149x198/c54f4b7194/1490499442?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/343044099/298x396/51b378992b/1490499442?v=1","title":"Mhrm Project Proposal","short_title":"Mhrm Project Proposal","author":"srimkb","tracking":{"object_type":"document","object_id":343044099,"track":"flattened_recommender","doc_uuid":"GtI2BzOtV+r2mW3JF/a4UN61vrk="},"url":"https://www.scribd.com/document/343044099/Mhrm-Project-Proposal","top_badge":null},"344186527":{"type":"document","id":344186527,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/344186527/149x198/b3a9e5b7f7/1491427953?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/344186527/298x396/90bca75e5b/1491427953?v=1","title":"JavaScript Course Notes.pdf","short_title":"JavaScript Course Notes.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":344186527,"track":"flattened_recommender","doc_uuid":"FX5JJDmZXySZiVqCjoL1Dhcu6q4="},"url":"https://www.scribd.com/document/344186527/JavaScript-Course-Notes-pdf","top_badge":null},"344187175":{"type":"document","id":344187175,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/344187175/149x198/c4f8037408/1491428384?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/344187175/298x396/3186340f45/1491428384?v=1","title":"JavaScript Built-In Functions","short_title":"JavaScript Built-In Functions","author":"srimkb","tracking":{"object_type":"document","object_id":344187175,"track":"flattened_recommender","doc_uuid":"98uU49F7oVpC8rV7BoQfJIO/SMY="},"url":"https://www.scribd.com/document/344187175/JavaScript-Built-In-Functions","top_badge":null},"345918093":{"type":"document","id":345918093,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/345918093/149x198/437c6d3ebb/1492822488?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/345918093/298x396/0f1b9448eb/1492822488?v=1","title":"BigdataGreenplumdba_onlinetraining.pptx","short_title":"BigdataGreenplumdba_onlinetraining.pptx","author":"srimkb","tracking":{"object_type":"document","object_id":345918093,"track":"flattened_recommender","doc_uuid":"JLlV+3PMfIp0vYDcO3GZ70y/avA="},"url":"https://www.scribd.com/presentation/345918093/BigdataGreenplumdba-onlinetraining-pptx","top_badge":null},"345918131":{"type":"document","id":345918131,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/345918131/149x198/7977bfc19b/1492822577?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/345918131/298x396/7bca1a591e/1492822577?v=1","title":"db2_tutorial.pdf","short_title":"db2_tutorial.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":345918131,"track":"flattened_recommender","doc_uuid":"Y0kfVIPDlT7Jx9hKHUmfoe8q8n4="},"url":"https://www.scribd.com/document/345918131/db2-tutorial-pdf","top_badge":null},"346161552":{"type":"document","id":346161552,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/346161552/149x198/9b7cf65c1c/1493047047?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/346161552/298x396/c6ca250f3b/1493047047?v=1","title":"Managing Business Service Onboarding SD Konf","short_title":"Managing Business Service Onboarding SD Konf","author":"srimkb","tracking":{"object_type":"document","object_id":346161552,"track":"flattened_recommender","doc_uuid":"24qH7S8Y3IZm/vKN5p/BMDX2q2k="},"url":"https://www.scribd.com/document/346161552/Managing-Business-Service-Onboarding-SD-Konf","top_badge":null},"351371187":{"type":"document","id":351371187,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/351371187/149x198/cc5fc0db03/1497536906?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/351371187/298x396/2d4425c5b9/1497536906?v=1","title":"PSISA Practice Test.pdf","short_title":"PSISA Practice Test.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":351371187,"track":"flattened_recommender","doc_uuid":"gGrSv4cLHnZyGa/5+rmTmW5h7vg="},"url":"https://www.scribd.com/document/351371187/PSISA-Practice-Test-pdf","top_badge":null},"351371202":{"type":"document","id":351371202,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/351371202/149x198/012ecce188/1497536925?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/351371202/298x396/6aebaec7a5/1497536925?v=1","title":"PSISA Practice Test1.pdf","short_title":"PSISA Practice Test1.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":351371202,"track":"flattened_recommender","doc_uuid":"NJpdsv9pAXA6WOhsYNjYpGj/QoE="},"url":"https://www.scribd.com/document/351371202/PSISA-Practice-Test1-pdf","top_badge":null},"351372010":{"type":"document","id":351372010,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/351372010/149x198/39268885ca/1497537822?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/351372010/298x396/59d52fe40f/1497537822?v=1","title":"PISG-Manual-12.pdf","short_title":"PISG-Manual-12.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":351372010,"track":"flattened_recommender","doc_uuid":"h53NFGZm79kzf2KEfzHekEm2Cok="},"url":"https://www.scribd.com/document/351372010/PISG-Manual-12-pdf","top_badge":null},"352917039":{"type":"document","id":352917039,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/352917039/149x198/f6b4564b0b/1499197481?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/352917039/298x396/167add7e8b/1499197481?v=1","title":"Contents of Service-Now Training-1","short_title":"Contents of Service-Now Training-1","author":"srimkb","tracking":{"object_type":"document","object_id":352917039,"track":"flattened_recommender","doc_uuid":"ECXRom1kakHic+Te3GwP93Bn4Vw="},"url":"https://www.scribd.com/document/352917039/Contents-of-Service-Now-Training-1","top_badge":null},"367144617":{"type":"document","id":367144617,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/367144617/149x198/647bc94858/1513231979?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/367144617/298x396/679f0db288/1513231979?v=1","title":"Basics of Unix","short_title":"Basics of Unix","author":"Deepak Malusare","tracking":{"object_type":"document","object_id":367144617,"track":"flattened_recommender","doc_uuid":"eM3H0C4gFAY5aTiqk8HeA0ZS+Pw="},"url":"https://www.scribd.com/document/367144617/Basics-of-Unix","top_badge":null},"368928177":{"type":"document","id":368928177,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/368928177/149x198/11e8c89c50/1516989306?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/368928177/298x396/13064ba789/1516989306?v=1","title":"RPA Interview Questions","short_title":"RPA Interview Questions","author":"srimkb","tracking":{"object_type":"document","object_id":368928177,"track":"flattened_recommender","doc_uuid":"yGSwsJTh3ltfhxJm6QGl6V6JShg="},"url":"https://www.scribd.com/document/368928177/RPA-Interview-Questions","top_badge":null},"374051739":{"type":"document","id":374051739,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374051739/149x198/ae80eb5d89/1521225755?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374051739/298x396/b92aa39588/1521225755?v=1","title":"The-Complete-PMP-Formula-Guide.pdf","short_title":"The-Complete-PMP-Formula-Guide.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":374051739,"track":"flattened_recommender","doc_uuid":"BsDFXcU8F40uSY/E4XeBxh6GIdM="},"url":"https://www.scribd.com/document/374051739/The-Complete-PMP-Formula-Guide-pdf","top_badge":null},"374051776":{"type":"document","id":374051776,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/374051776/149x198/538b4be92f/1521225807?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374051776/298x396/ece3ef16d1/1521225807?v=1","title":"Essential ScrumMaster","short_title":"Essential ScrumMaster","author":"srimkb","tracking":{"object_type":"document","object_id":374051776,"track":"flattened_recommender","doc_uuid":"H8ANL11h/hXSMR14bwqTSmwu3mI="},"url":"https://www.scribd.com/document/374051776/Essential-ScrumMaster","top_badge":null},"374053138":{"type":"document","id":374053138,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374053138/149x198/a913ade818/1521227390?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374053138/298x396/fbc5e5d190/1521227390?v=1","title":"Estimate Story Points in Agile","short_title":"Estimate Story Points in Agile","author":"srimkb","tracking":{"object_type":"document","object_id":374053138,"track":"flattened_recommender","doc_uuid":"nuGSH5nQltXbTTJnJ3vSzTTRNQE="},"url":"https://www.scribd.com/document/374053138/Estimate-Story-Points-in-Agile","top_badge":null},"374053294":{"type":"document","id":374053294,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374053294/149x198/0632668082/1521227586?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374053294/298x396/642d518ce4/1521227586?v=1","title":"Scrum Artifacts","short_title":"Scrum Artifacts","author":"srimkb","tracking":{"object_type":"document","object_id":374053294,"track":"flattened_recommender","doc_uuid":"XbQ9oxK+Bh9sZkQAkAB8H5Jrffw="},"url":"https://www.scribd.com/document/374053294/Scrum-Artifacts","top_badge":null},"374053440":{"type":"document","id":374053440,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374053440/149x198/4d889a0d5c/1521227738?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374053440/298x396/b20393d595/1521227738?v=1","title":"Principles of Scrum Methodology","short_title":"Principles of Scrum Methodology","author":"srimkb","tracking":{"object_type":"document","object_id":374053440,"track":"flattened_recommender","doc_uuid":"jxC64n6iH/zUs58UWqC4WkiG77U="},"url":"https://www.scribd.com/document/374053440/Principles-of-Scrum-Methodology","top_badge":null},"374538128":{"type":"document","id":374538128,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374538128/149x198/465c50a7d5/1521655779?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/374538128/298x396/cb4be4fbea/1521655779?v=1","title":"Scrum_in_a_nutshell.pdf","short_title":"Scrum_in_a_nutshell.pdf","author":"srimkb","tracking":{"object_type":"document","object_id":374538128,"track":"flattened_recommender","doc_uuid":"gT30OwmIeXOarEVXdfVaCOmTwd0="},"url":"https://www.scribd.com/document/374538128/Scrum-in-a-nutshell-pdf","top_badge":null},"374538227":{"type":"document","id":374538227,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374538227/149x198/f337ffe8bd/1521655864?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/374538227/298x396/43ccd521be/1521655864?v=1","title":"Agile Development Cheat Sheet","short_title":"Agile Development Cheat Sheet","author":"srimkb","tracking":{"object_type":"document","object_id":374538227,"track":"flattened_recommender","doc_uuid":"QMtOe5q2tfPpK4cBibqkTSNfpEs="},"url":"https://www.scribd.com/document/374538227/Agile-Development-Cheat-Sheet","top_badge":null},"374538461":{"type":"document","id":374538461,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374538461/149x198/a61d3bb8d2/1521656045?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/374538461/298x396/b3f483843a/1521656045?v=1","title":"Scrum Rules","short_title":"Scrum Rules","author":"srimkb","tracking":{"object_type":"document","object_id":374538461,"track":"flattened_recommender","doc_uuid":"DUPE+vN8d099/gTCdKNZSChp0YI="},"url":"https://www.scribd.com/document/374538461/Scrum-Rules","top_badge":null},"376598374":{"type":"document","id":376598374,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/376598374/149x198/7f1c426586/1523977898?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/376598374/298x396/e9c61859da/1523977898?v=1","title":"Ui Path Training","short_title":"Ui Path Training","author":"srimkb","tracking":{"object_type":"document","object_id":376598374,"track":"flattened_recommender","doc_uuid":"0jdsb8m3SKH9/8F04dRRIECwlpk="},"url":"https://www.scribd.com/document/376598374/Ui-Path-Training","top_badge":null},"376737432":{"type":"document","id":376737432,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/376737432/149x198/37d2f7dd70/1524078014?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/376737432/298x396/9f9a85939a/1524078014?v=1","title":"Web Data Extraction En","short_title":"Web Data Extraction En","author":"srimkb","tracking":{"object_type":"document","object_id":376737432,"track":"flattened_recommender","doc_uuid":"aG0095K2qqL0APYNEr1JFLuM6AU="},"url":"https://www.scribd.com/document/376737432/Web-Data-Extraction-En","top_badge":null},"376737561":{"type":"document","id":376737561,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/376737561/149x198/2b9302f879/1524078126?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/376737561/298x396/0afc67e976/1524078126?v=1","title":"Situational Scrum","short_title":"Situational Scrum","author":"srimkb","tracking":{"object_type":"document","object_id":376737561,"track":"flattened_recommender","doc_uuid":"SZl9HJQmil65nwY1gwkZlDE4qhQ="},"url":"https://www.scribd.com/document/376737561/Situational-Scrum","top_badge":null},"379200024":{"type":"document","id":379200024,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/379200024/149x198/1ba7c530a3/1526317373?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/379200024/298x396/ea5931b1f5/1526317373?v=1","title":"Cognitive Psychology","short_title":"Cognitive Psychology","author":"srimkb","tracking":{"object_type":"document","object_id":379200024,"track":"flattened_recommender","doc_uuid":"5GuTVQ8n93lmCn9EvbTbXUqivnQ="},"url":"https://www.scribd.com/document/379200024/Cognitive-Psychology","top_badge":null},"379200391":{"type":"document","id":379200391,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/379200391/149x198/36623c527d/1526317572?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/379200391/298x396/740f958c8d/1526317572?v=1","title":"The Psychology of Inequality","short_title":"The Psychology of Inequality","author":"srimkb","tracking":{"object_type":"document","object_id":379200391,"track":"flattened_recommender","doc_uuid":"NwqC/KxuGU45bUTCL5tQzUDx/hM="},"url":"https://www.scribd.com/document/379200391/The-Psychology-of-Inequality","top_badge":null},"379200737":{"type":"document","id":379200737,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/379200737/149x198/f55eb01b12/1526317752?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/379200737/298x396/5e21679ae8/1526317752?v=1","title":"The Psychology of Inequality.doc","short_title":"The Psychology of Inequality.doc","author":"srimkb","tracking":{"object_type":"document","object_id":379200737,"track":"flattened_recommender","doc_uuid":"uUy/IOqsTGLFaHrORdN61WtHe/8="},"url":"https://www.scribd.com/document/379200737/The-Psychology-of-Inequality-doc","top_badge":null},"379200930":{"type":"document","id":379200930,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/379200930/149x198/b709652dd3/1526317848?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/379200930/298x396/fd0a75ea1c/1526317848?v=1","title":"Social Psychology","short_title":"Social Psychology","author":"srimkb","tracking":{"object_type":"document","object_id":379200930,"track":"flattened_recommender","doc_uuid":"uso2tndvsyP8Ybh9M14+3kBvuO8="},"url":"https://www.scribd.com/document/379200930/Social-Psychology","top_badge":null},"385569543":{"type":"document","id":385569543,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/385569543/149x198/718adb00a3/1533569418?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/385569543/298x396/5a2eb22a97/1533569418?v=1","title":"Scrum Master Interview Questions","short_title":"Scrum Master Interview Questions","author":"srimkb","tracking":{"object_type":"document","object_id":385569543,"track":"flattened_recommender","doc_uuid":"D2jeyy3NmqSG7KWUNP28OQBEHRE="},"url":"https://www.scribd.com/document/385569543/Scrum-Master-Interview-Questions","top_badge":null}}},"seo_roadblock_props_path":"/doc-page/seo-roadblock-props/315578693","signup_context":null,"toolbar":{"search_path":"/search-4gen?allowed_pages=1%2C2%2C3&auth_token=zxHaopLu5YDSVw7EDdX5yhOoGMY%3D&authenticity_token=wWZIr%2BMpVDwmVyrhl%2FgmNzRfs38yhL4iE3jn0%2Bz5%2BpxCWkXGLOphn9BQNQD92J4rQcBQImM3E%2BK1Q94AnIv9qw%3D%3D&expires=1540664962&wordDocumentId=315578693&wordUploadId=320991127"},"renewal_nag_props":null}-->