diff --git a/Bash-Scripting.txt b/Bash-Scripting.txt new file mode 100644 index 0000000..2b33dcf --- /dev/null +++ b/Bash-Scripting.txt @@ -0,0 +1,195 @@ +-> ls : + + List all the file or folder present in the current directory. + + Option: + + * -l : List all the file and folder with permission, owner, + and group details in form of vertically alinged list. + + * -a : Display hidden (.)dotfile as well. + +-> pwd : + + Print the current directory, present on the terminal. + +-> date : + + Print the current date and time. + +-> chmod : + + Used to change the permission of file or folder + + Symbol Meaning : + + * a : For all (including owner, group and others) + * u : For owner + * g : For group + * o : For others + * r : read permission ( number 4 ) + * w : write permission ( number 2 ) + * x : execute permission ( number 1 ) + + Option : + + * a+x : Add execute permission for all. + * a-x : Remove execute permission for all. + * 755 : rwx - user , r-x - group, r-x - others + + How to use? + + chmod a+x "file/folder name" + chmod 755 "file/folder name" + +-> echo : + + To Print argument on the terminal + + Option: + + * -n : Not to add newline. + * ".." : String to print + * $PATH : variable ( environment variable, etc. ) + +-> $PATH environment variable : + + Store the paths which help in invoking executable, script, etc, + without specifying whole path, where its present. + + How to add path to $PATH? + + export PATH=$PATH:$(pwd) + or full path to intended directory. + +-> SHABANG (#!/bin/bash) + + Tells to use this interpreter to run the script. + Same as /bin/bash ./script + +-> Variables : + + To stores data and can be changed. + + 1. Explicit Defination : + VAR=value + COUNT=5 + PATH=/var/lib + + 2. Read command : + read VAR + read COUNT + read PATH + + Option : + + * -p : to print the parameter before read. + + How to use? + + read -p "Your name: " NAME + + * -s : to hide the input to be taken. Best use + for password. + + How to use? + + read -sp "Your age: " AGE + + 3. Command Substitution : + + To store the output of the command executed to the variable. + + How to use? + + VAR=$(pwd) or VAR=`pwd` + + + How to use variables? + + Use $variableName for using variables. + + +-> For Math Calculation : + + 1 . let + + let RESULT=NUMBER+5 + let NUMBER++ + let NUMBER-- + let NUMBER+=5 + let NUMBER-=5 + + 2. (( )) + + RESULT=$(( NUMBER + 5 )) + + 3. [] + + RESULT=$[ NUMBER + 5 ] + + 4. expr + + RESULT=$(expr $NUMBER + 5) + RESULT=`expr $NUMBER + 5` + RESULT=`expr 2 + 3` + + 5. bc ( used for floating point number ) + + RESULT=`echo "$NUMBER * 1.9" | bc` + + +-> Argument : + + + $0 - script name + $1 - first argument + $2 - second argument + $n - nth argument + "$@" - all argument, expands as "$1" "$2" "$3" + and so on. + "$*" - all argument as string, "$1c$2c$3", + where c is IFS (Internal field + separator), which is usally whitespace. + $# - arguments count + +-> Redirecting and piping: + + Redirecting + + * STDIN (0) - Standard input (data provided to program) + * STDOUT (1) - Standard output (what program prints, defaultly to the terminal) + * STDERR (2) - Standard error (what error message program prints, defaultly to terminal) + + examples: + cat file1.txt > output_from_cat.txt + cat file1.txt 1>output_from_cat.txt + cat file1.txt 2>error.txt + cat file1.txt 1>output_from_cat.txt 2>error.txt + cat file1.txt &> output_from_cat.txt (from both 1 and 2) + cat file1.txt 1> output_from_cat.txt 2>&1(redirecting error to output) + + cat file1.txt >> output_from_cat.txt(adding output instead of replacing it) + + Piping + + output of preceeding program is input to succeeding + program. + + Program1 | Program2 + + examples: + cat file.txt | wc -l + cat file.txt | head -5 | tail -3 | wc -l + +-> Exit Status + + echo $? + + $? will give a return value of previous command. + It's the return value, called EXIT STATUS. + Successfully exiting give 0 value otherwise + non-zero value. + + We can exit script using exit command. + exit command can be used with number 0 - 255. \ No newline at end of file diff --git a/arguments.sh b/arguments.sh new file mode 100644 index 0000000..fd3d3e5 --- /dev/null +++ b/arguments.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +IFS="," +echo "Script name: $0" +echo "First argument: $1" +echo "Second argument: $2" +echo "All arguments with \$@: $@" +echo "All arguments with \$*: $*" +echo "Arguments count: $#" \ No newline at end of file diff --git a/configure.in b/configure.in index c2d07bf..6d9c20c 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ AC_INIT(["Name of Program"], [ Version X.X.X], ["author email"]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE() AC_CHECK_PROGS(CC,[clang, gcc, xlc, icc], [""]) AC_PROG_CC diff --git a/time_measurement.sh b/time_measurement.sh new file mode 100644 index 0000000..28c083a --- /dev/null +++ b/time_measurement.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +#start time measurement from here +START=$(date +%s) +CURRENT_DIRECTORY=$(pwd) +sleep 2 #sleep 2 seconds +END=$(date +%s) + +#end time measurement +DIFFERENCE=$(( END - START )) + +echo +echo Time elapsed: $DIFFERENCE seconds. \ No newline at end of file