133 lines
2.5 KiB
Bash
Raw Normal View History

2019-12-01 23:00:04 +02:00
#!/bin/bash
# Section 2.3
prompt_read_password(){
prompt="You shall not pass:"
read -p "$prompt" -s input
echo -e "\ninput password [$input]"
2019-12-01 23:00:04 +02:00
}
array_read() {
declare -a input_array
text="baeldung is a cool tech site"
read -e -i "$text" -a input_array
2019-12-01 23:00:04 +02:00
for input in ${input_array[@]}
do
echo " word [$input]"
2019-12-01 23:00:04 +02:00
done
}
# section 2.2
custom_ifs_no_array(){
IFS=";"
read input1 input2 input3
echo "[$input1] [$input2] [$input3]"
}
# section 2.1
default_read() {
read input1 input2 input3
echo "[$input1] [$input2] [$input3]"
2019-12-01 23:00:04 +02:00
}
# section 3.1
2019-12-01 23:00:04 +02:00
file_read(){
exec {file_descriptor}<"./file.csv"
2019-12-01 23:00:04 +02:00
declare -a input_array
delimiter=";"
while IFS="," read -a input_array -d $delimiter -u $file_descriptor
2019-12-01 23:00:04 +02:00
do
echo "${input_array[0]},${input_array[2]}"
2019-12-01 23:00:04 +02:00
done
exec {file_descriptor}>&-
}
# section 3.2
2019-12-01 23:00:04 +02:00
advanced_pipeing(){
ls -ll | { declare -a input
read
while read -a input;
do
echo "${input[0]} ${input[8]}"
done }
}
# section 3.3
timeout_input_read(){
prompt="You shall not pass:"
read -p "$prompt" -s -r -t 5 input
if [ -z "$input" ]; then
echo -e "\ntimeout occured!"
else
echo -e "\ninput word [$input]"
fi
}
2019-12-01 23:00:04 +02:00
exactly_n_read(){
prompt="Reading exactly 11 chars:"
read -p "$prompt" -N 11 -t 5 input1 input2
echo -e "\ninput word1 [$input1]"
echo "input word2 [$input2]"
}
advanced_pipeing_ps(){
# process substitution
declare -a input
while read -a input
do
echo "${input[0]} ${input[8]}"
done < <(ls -ll)
2019-12-01 23:00:04 +02:00
}
2019-12-03 20:56:35 +02:00
custom_ifs_read(){
declare -a input_array
while IFS=";" read -a input_array -r
do
for element in ${input_array[@]}
do
echo -n "$element.backup "
done
echo ""
done < "file.csv"
}
infinite_read(){
while read -d "?" -ep "Input:" input
do
echo "$input"
done
}
custom_ifs(){
declare -a input_array
IFS=$1 # whitespace
read -a input_array -p "Enter something with delimiter <$1>:"
for input in ${input_array[@]}
do
echo "[$input]"
done
}
2019-12-01 23:00:04 +02:00
#default_read
#array_read
#special_delim
file_read
2019-12-01 23:00:04 +02:00
#prompt_read
#default_input_read
2019-12-03 20:56:35 +02:00
#advanced_pipeing
#custom_ifs_read
#infinite_read
# custom_ifs " "
# custom_ifs ";"
#custom_ifs_no_array
2019-12-01 23:00:04 +02:00