mirror of https://github.com/01-edu/public.git
4 changed files with 89 additions and 1 deletions
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash |
||||
|
||||
# Unofficial Bash Strict Mode |
||||
set -euo pipefail |
||||
IFS=' |
||||
' |
||||
|
||||
submitted=$(bash student/set-env-vars.sh) |
||||
expected=$(bash solutions/set-env-vars.sh) |
||||
|
||||
diff <(echo "$submitted") <(echo "$expected") |
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash |
||||
|
||||
export MY_MESSAGE="Hello World" |
||||
export MY_NUM=100 |
||||
export MY_PI=3.142 |
||||
export MY_ARR=(one, two, three, four, five) |
||||
printenv |
@ -0,0 +1,70 @@
|
||||
## set-env-vars |
||||
|
||||
### Instructions |
||||
|
||||
Create a script `set-env-vars.sh`, which will allow you to set the following variables as environment variables and and print them all: |
||||
|
||||
- `MY_MESSAGE` which contains the string `"Hello World"`. |
||||
- `MY_NUM` which contains the number `100`. |
||||
- `MY_PI` which contains the number `3.142`. |
||||
|
||||
Expected output: |
||||
|
||||
```console |
||||
$ printenv # The env variables present are just an example, yours will be different. |
||||
SHELL=/bin/bash |
||||
TERM=xterm |
||||
USER=demouser |
||||
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca:... |
||||
MAIL=/var/mail/demouser |
||||
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games |
||||
PWD=/home/demouser |
||||
LANG=en_US.UTF-8 |
||||
SHLVL=1 |
||||
HOME=/home/demouser |
||||
LOGNAME=demouser |
||||
LESSOPEN=| /usr/bin/lesspipe %s |
||||
LESSCLOSE=/usr/bin/lesspipe %s %s |
||||
_=/usr/bin/printenv |
||||
$ ./set-env-vars.sh |
||||
MY_NUM=100 |
||||
SHELL=/bin/bash |
||||
TERM=xterm |
||||
USER=demouser |
||||
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca:... |
||||
MAIL=/var/mail/demouser |
||||
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games |
||||
PWD=/home/demouser |
||||
LANG=en_US.UTF-8 |
||||
MY_PI=3.142 |
||||
SHLVL=1 |
||||
HOME=/home/demouser |
||||
LOGNAME=demouser |
||||
MY_MESSAGE=Hello World |
||||
LESSOPEN=| /usr/bin/lesspipe %s |
||||
LESSCLOSE=/usr/bin/lesspipe %s %s |
||||
_=/usr/bin/printenv |
||||
$ |
||||
``` |
||||
|
||||
### Hints |
||||
|
||||
Setting values to environment variables |
||||
|
||||
In order to set a value to an existing environment variable, we use an assignment expression. For instance, to set the value of the "LANG" variable to "he_IL.UTF-8", we use the following command: |
||||
|
||||
```console |
||||
$ LANG=he_IL.UTF-8 |
||||
``` |
||||
|
||||
If we use an assignment expression for a variable that doesn't exist, the shell will create a shell variable, which is similar to an environment variable but does not influence the behaviour of other applications. |
||||
|
||||
A shell variable can be exported to become an environment variable with the export command. To create the "EDITOR" environment variable and assign the value "nano" to it, you can do: |
||||
|
||||
```console |
||||
$ EDITOR=nano |
||||
$export EDITOR |
||||
``` |
||||
|
||||
> You have to use Man or Google to know more about commands flags, in order to solve this exercise! |
||||
> Google and Man will be your friends! |
Loading…
Reference in new issue