Created
April 15, 2016 14:55
-
-
Save ypetya/d8d0e5ccc5f1146ccc646d1486233ec8 to your computer and use it in GitHub Desktop.
some basic example of usage the "test" operator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Erratic behavior of the "$*" and "$@" internal Bash variables, | |
#+ depending on whether or not they are quoted. | |
# Demonstrates inconsistent handling of word splitting and linefeeds. | |
set -- "First one" "second" "third:one" "" "Fifth: :one" | |
# Setting the script arguments, $1, $2, $3, etc. | |
echo | |
echo 'IFS unchanged, using "$*"' | |
c=0 | |
for i in "$*" # quoted | |
do echo "$((c+=1)): [$i]" # This line remains the same in every instance. | |
# Echo args. | |
done | |
echo --- | |
echo 'IFS unchanged, using $*' | |
c=0 | |
for i in $* # unquoted | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS unchanged, using "$@"' | |
c=0 | |
for i in "$@" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS unchanged, using $@' | |
c=0 | |
for i in $@ | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
IFS=: | |
echo 'IFS=":", using "$*"' | |
c=0 | |
for i in "$*" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using $*' | |
c=0 | |
for i in $* | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
var=$* | |
echo 'IFS=":", using "$var" (var=$*)' | |
c=0 | |
for i in "$var" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using $var (var=$*)' | |
c=0 | |
for i in $var | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
var="$*" | |
echo 'IFS=":", using $var (var="$*")' | |
c=0 | |
for i in $var | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using "$var" (var="$*")' | |
c=0 | |
for i in "$var" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using "$@"' | |
c=0 | |
for i in "$@" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using $@' | |
c=0 | |
for i in $@ | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
var=$@ | |
echo 'IFS=":", using $var (var=$@)' | |
c=0 | |
for i in $var | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using "$var" (var=$@)' | |
c=0 | |
for i in "$var" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
var="$@" | |
echo 'IFS=":", using "$var" (var="$@")' | |
c=0 | |
for i in "$var" | |
do echo "$((c+=1)): [$i]" | |
done | |
echo --- | |
echo 'IFS=":", using $var (var="$@")' | |
c=0 | |
for i in $var | |
do echo "$((c+=1)): [$i]" | |
done | |
echo | |
# Try this script with ksh or zsh -y. | |
exit 0 | |
# This example script written by Stephane Chazelas, | |
#+ and slightly modified by the document author. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment