Shell Scripting Complete 2: Bash Variables, Quoting, Command Substitution आणि Parameter Expansion
Variables मुळे script गोष्टी लक्षात ठेवतो: file नाव, date, count. Quoting ठरवतं bash spaces आणि stars text म्हणून घेतो की special characters म्हणून, आणि script bugs चं हे नंबर एक कारण आहे. Command substitution एका command चा output variable मधे ठेवतं. हा chapter तिन्ही step by step शिकवतो, सोबत default values, string tricks, arithmetic, environment variables आणि $0, $$ सारखे special variables.
या chapter मध्ये तुम्ही काय शिकाल
- Variables बरोबर बनवा आणि वापरा
- Single quotes, double quotes आणि no quotes समजा
- $( ) ने command output पकडा
- Defaults आणि string operations वापरा
- $(( )) ने integer गणित करा
- Environment variables export करा
1. रोजचं उदाहरण: स्वयंपाकघरातले label लावलेले डबे
हे का लागतं?
स्वयंपाकघरात प्रत्येक डब्याला label असतं: साखर, मीठ, चहा. Recipe 'साखर टाका' म्हणते तेव्हा label बघून डबा घेता आणि आतलं वापरता. कोणी साखरेच्या डब्यात मीठ ठेवलं तर चहा बिघडतो. Variables म्हणजे label लावलेले डबे, आणि quoting म्हणजे आतलं जसंच्या तसं ठेवणारं झाकण.
हे काय आहे?
डब्याचं label = variable name. आत काय = value. डब्यातून घेणं = $name. झाकण बंद = "$name" (आतलं अख्खं राहतं). Machine मधून डबा भरणं = name=$(command). शेजाऱ्यांना डबा देणं = export.
कसं करायचं (step by step)
2. Variable बनवा: name=value
हे का लागतं?
तोच path दहा वेळा असलेला script बदलायला अवघड. एका variable मधे ठेवा आणि एका जागी बदला.
हे काय आहे?
name=value असं, = भोवती space नको. नावात letters, digits आणि _, digit ने सुरू नाही. $name किंवा ${name} ने वाचा. स्वतःच्या variables साठी lower case; UPPER case system वापरतो (PATH, HOME). unset name delete करतो. readonly name constant करतो.
कसं करायचं (step by step)
- Set करा आणि print.
city=Pune; echo "I live in $city"
Output:
I live in Pune
याचा अर्थ: $city ची value आली.
- Spaces बिघडवतात.
city = Pune
Output:
bash: city: command not found
याचा अर्थ: bash ला city command वाटली.
- Braces text जोडतात.
f=report; echo "${f}_2026.csv"
Output:
report_2026.csv
याचा अर्थ: Braces शिवाय bash f_2026 नावाचा variable शोधतो.
- Constant.
readonly TAX=18; TAX=20
Output:
bash: TAX: readonly variable
याचा अर्थ: बदलता येत नाही.
3. Double quotes: spaces ठेवा, तरी expand
हे का लागतं?
File names आणि user input मधे बहुतेक spaces असतात. Quotes नसतील तर एक नाव दोन arguments होतं आणि command बिघडते.
हे काय आहे?
"double quotes" मधे bash $var, $(cmd) आणि $((math)) बदलतो, पण spaces वर तोडत नाही आणि * किंवा ? expand करत नाही. नियम: कारण नसेल तर नेहमी "$var". आत quote साठी \" आणि literal dollar साठी \$.
कसं करायचं (step by step)
- Space असलेलं नाव.
f='Sales Q3.xlsx'; ls -l $f
Output:
ls: cannot access 'Sales': No such file or directory
ls: cannot access 'Q3.xlsx': No such file or directory
याचा अर्थ: Quotes नाही: दोन words मधे तुटलं.
- Quoted.
ls -l "$f"
Output:
-rw-r--r-- 1 asha asha 20480 Oct 25 11:00 Sales Q3.xlsx
याचा अर्थ: एक argument, चालतं.
- Star star च राहतो.
p='*.log'; echo "$p"
Output:
*.log
याचा अर्थ: Quotes मधे * expand होत नाही.
- आत escape.
echo "Price: \$5 for \"chai\""
Output:
Price: $5 for "chai"
याचा अर्थ: Backslash $ आणि " text ठेवतो.
4. Single quotes: सगळं साधा text
हे का लागतं?
कधी कधी $ आणि * जसेच्या तसे हवे, उदा. awk programs, regex किंवा $HOME बद्दल message.
हे काय आहे?
'single quotes' मधे काहीच special नाही: $var नाही, $( ) नाही, \ नाही. Single quote आत single quote ठेवता येत नाही; बंद करा आणि परत उघडा: 'it'\''s'. Fixed text साठी single quotes, variable लागतो तेव्हा double. $'...' हा तिसरा प्रकार \n आणि \t समजतो.
| प्रकार | $var expand? | Spaces राहतात? |
|---|---|---|
| no quotes | हो | नाही, तुटतं |
| "double" | हो | हो |
| 'single' | नाही | हो |
| $'ansi' | नाही, पण \n चालतं | हो |
कसं करायचं (step by step)
- तुलना.
echo "Home is $HOME"; echo 'Home is $HOME'
Output:
Home is /home/asha
Home is $HOME
याचा अर्थ: Single quotes जसंच्या तसं print.
- awk ला single quotes.
awk -F: '{print $1}' /etc/passwd | head -2
Output:
root
bin
याचा अर्थ: $1 awk चा, bash चा नाही.
- आत quote.
echo 'Ravi'\''s laptop'
Output:
Ravi's laptop
याचा अर्थ: बंद, escaped quote, परत उघडा.
- ANSI प्रकार.
echo $'line1\nline2'
Output:
line1
line2
याचा अर्थ: \n नवी line झाली.
5. Command substitution: $(command)
हे का लागतं?
Scripts ना बहुतेक message किंवा file नावात आजची date, server नाव किंवा files ची संख्या लागते.
हे काय आहे?
$(command) command चालवतो आणि त्याचा output त्या जागी ठेवतो, शेवटची new line काढून. जुना प्रकार backticks `command`; $( ) वापरा कारण nest होतं आणि वाचायला सोपं. Quote करा: "$(command)" spaces आणि new lines ठेवतं.
कसं करायचं (step by step)
- File नावात date.
today=$(date +%F); echo "backup-$today.tgz"
Output:
backup-2026-10-25.tgz
याचा अर्थ: आधी date command चालली.
- Lines मोजा.
users=$(wc -l < /etc/passwd); echo "$users accounts"
Output:
38 accounts
याचा अर्थ: < मुळे wc file नाव print करत नाही.
- Nesting.
echo "Kernel dir: $(basename $(dirname /lib/modules/$(uname -r)/kernel))"
Output:
Kernel dir: 6.1.0-18-amd64
याचा अर्थ: $( ) आत $( ) वाचायला सोपं.
- New lines ठेवा.
top3=$(ls /etc | head -3); echo "$top3"
Output:
adduser.conf
alternatives
apt
याचा अर्थ: Quoted output प्रत्येक नाव वेगळ्या line वर ठेवतं.
6. Default values आणि checks: ${var:-x} वगैरे
हे का लागतं?
Value नसेल तेव्हा scripts नीट वागायला हवेत, उदा. user argument विसरला.
हे काय आहे?
${var:-default} var रिकामा किंवा unset असेल तर default देतो (var बदलत नाही). ${var:=default} तो साठवतोही. ${var:?message} रिकामा असेल तर message सह script थांबवतो. ${var:+other} var ला value असेल तेव्हाच other देतो. set -u सोबत छान चालतात.
| प्रकार | var रिकामा असेल तर | var set असेल तर |
|---|---|---|
| ${var:-d} | d देतो | var देतो |
| ${var:=d} | var=d set | var देतो |
| ${var:?msg} | error आणि stop | var देतो |
| ${var:+x} | रिकामं | x देतो |
कसं करायचं (step by step)
- Default port.
echo "port ${PORT:-8080}"
Output:
port 8080
याचा अर्थ: PORT set नव्हता, म्हणून 8080.
- Set करून ठेवा.
: "${ENVNAME:=dev}"; echo $ENVNAME
Output:
dev
याचा अर्थ: : command काही करत नाही, पण expansion dev साठवतं.
- आवश्यक.
bash -c 'echo "${DB_HOST:?set DB_HOST first}"'
Output:
bash: line 1: DB_HOST: set DB_HOST first
याचा अर्थ: स्पष्ट message सह script थांबतो.
7. String tricks: length, cut, replace, case
हे का लागतं?
Files rename, extensions काढणं, input साफ करणं ही रोजची कामं. Bash sed किंवा awk शिवाय करू शकतो.
हे काय आहे?
${#v} length. ${v#pat} सुरुवातीपासून सगळ्यात छोटा match काढतो, ${v##pat} सगळ्यात मोठा. ${v%pat} शेवटून काढतो, ${v%%pat} मोठा. ${v/old/new} पहिला बदलतो, ${v//old/new} सगळे. ${v:start:len} भाग घेतो. ${v^^} upper case, ${v,,} lower case.
| प्रकार | उदाहरण (f=/data/img/photo.big.jpg) | Result |
|---|---|---|
| ${f##*/} | फक्त file नाव | photo.big.jpg |
| ${f%/*} | फक्त folder | /data/img |
| ${f%.*} | शेवटचं extension काढा | /data/img/photo.big |
| ${f##*.} | फक्त extension | jpg |
कसं करायचं (step by step)
- Length.
pin=411038; echo ${#pin}
Output:
6
याचा अर्थ: सहा characters.
- Extension बदला.
f=invoice.docx; echo "${f%.docx}.pdf"
Output:
invoice.pdf
याचा अर्थ: %.docx ने शेवट काढला.
- सगळे बदला.
s='a b c'; echo "${s// /_}"
Output:
a_b_c
याचा अर्थ: प्रत्येक space _ झाला.
- Upper case आणि substring.
code=mh12ab; echo "${code^^} ${code:0:4}"
Output:
MH12AB mh12
याचा अर्थ: ^^ upper, :0:4 पहिले चार.
8. Arithmetic: $(( )), (( )) आणि let
हे का लागतं?
Counters, totals, percentages आणि retries सगळ्यांना numbers लागतात.
हे काय आहे?
$(( expr )) integers मोजतो: + - * / % आणि ** (power). आत names $ शिवाय लिहू शकता. (( count++ )) variable बदलतो. Division decimals टाकतं: 7/2 = 3. Decimals साठी bc किंवा awk. 0 ने सुरू होणारे numbers octal मानले जातात (08 fail), म्हणून zeros काढा किंवा 10#08.
कसं करायचं (step by step)
- बेरीज.
a=40; b=2; echo $((a + b))
Output:
42
याचा अर्थ: आत $ नको.
- Counter.
n=0; ((n++)); ((n+=5)); echo $n
Output:
6
याचा अर्थ: (( )) variable बदलतो.
- Percentage.
used=37; total=50; echo "$(( used * 100 / total ))%"
Output:
74%
याचा अर्थ: आधी गुणा, मग भागा.
- bc ने decimals.
echo 'scale=2; 7/3' | bc
Output:
2.33
याचा अर्थ: Bash स्वतः फक्त integers.
9. Environment variables आणि export
हे का लागतं?
Child programs (python, java, दुसरा script) फक्त export केलेले variables बघतात.
हे काय आहे?
साधा variable फक्त current shell मधे. export name त्याला environment variable बनवतो जो प्रत्येक child process ला मिळतो. env किंवा printenv list करतात. VAR=value command फक्त त्या एका command साठी. प्रत्येक login ला हवा तर ~/.bashrc मधे export lines (environment chapter मधे details).
कसं करायचं (step by step)
- Export नाही.
color=blue; bash -c 'echo "child sees: $color"'
Output:
child sees:
याचा अर्थ: Child shell ला काहीच मिळालं नाही.
- Export.
export color; bash -c 'echo "child sees: $color"'
Output:
child sees: blue
याचा अर्थ: आता environment मधे.
- फक्त एका command साठी.
TZ=Asia/Tokyo date +%H:%M; date +%H:%M
Output:
14:35
11:05
याचा अर्थ: TZ फक्त पहिल्या date साठी बदलला.
- एक शोधा.
printenv | grep ^LANG
Output:
LANG=en_IN.UTF-8
याचा अर्थ: printenv exported variables दाखवतो.
10. Special variables: $0, $$, $!, $?, $RANDOM, $LINENO
हे का लागतं?
Bash काही variables तुमच्यासाठी भरतो. Logs, temp files आणि error messages साठी उपयोगी.
हे काय आहे?
$0 script नाव. $$ current shell चा PID (unique temp नावांसाठी). $! शेवटच्या background job चा PID. $? शेवटचा exit code. $RANDOM 0-32767 मधला number. $LINENO चालू line number. $SECONDS script सुरू झाल्यापासूनचे seconds. $1, $#, $@ arguments; chapter 3 मधे.
| Variable | काय असतं |
|---|---|
| $0 | script नाव |
| $$ | या shell चा PID |
| $! | शेवटचा background PID |
| $? | शेवटचा exit code |
| $RANDOM | random 0-32767 |
| $SECONDS | चालू असल्याचे seconds |
कसं करायचं (step by step)
- Unique temp file.
echo "/tmp/report.$$"
Output:
/tmp/report.48213
याचा अर्थ: प्रत्येक run ला वेगळं.
- Background PID.
sleep 30 & echo "started $!"
Output:
[1] 48250
started 48250
याचा अर्थ: नंतर wait किंवा kill साठी $! साठवा.
- Timer.
bash -c 'sleep 2; echo "took $SECONDS s"'
Output:
took 2 s
याचा अर्थ: Scripts साठी सोपं timing.
- सुरक्षित temp file.
t=$(mktemp); echo "$t"
Output:
/tmp/tmp.Xk29aQ
याचा अर्थ: mktemp random, private file बनवतो.
11. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Pooja, travel agency, Pune | Backup नावात dates | backup-$(date +%F).tgz |
| Oliver, insurance, Manchester | Spaces असलेल्या नावांसाठी quotes | cp "$src" "$dst" |
| Mei, e-commerce, Singapore | ${PORT:-8080} ने default ports | ${PORT:-8080} |
| Ahmed, telecom, Riyadh | Extensions मोठ्या प्रमाणात rename | ${f%.txt}.csv |
| Ana, pharma, Lisbon | Disk वापराचे percent | $(( used*100/total )) |
| Rahul, fintech, Mumbai | Required secrets :? सह | ${API_KEY:?missing} |
12. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
command not found (after name = value) | = भोवती spaces | Spaces काढा.name=value |
No such file or directory for a name with spaces | Variable quote नाही | Double quotes वापरा.ls "$f" |
$HOME printed literally | Single quotes वापरले | Expansion साठी double quotes.echo "$HOME" |
readonly variable | Constant बदलणं | दुसरं नाव.readonly -p |
value too great for base (error token is "08") | सुरुवातीचा zero = octal | Base 10 force.echo $((10#08)) |
syntax error: invalid arithmetic operator (error token is ".5") | $(( )) मधे decimals | bc किंवा awk.echo '2.5*2' | bc |
child script does not see my variable | Export नाही | export करा.export name |
parameter null or not set | ${var:?} आणि var रिकामा | आधी variable set.export DB_HOST=db1 |
unexpected EOF while looking for matching quote | Quote बंद नाही | प्रत्येक quote बंद.bash -n s.sh |
13. Troubleshooting step by step
हे का लागतं?
Spaces आणि रिकाम्या values दिसाव्यात म्हणून markers सह variable print करा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- नेमकी value.
echo "[$name]"
- Type आणि attributes.
declare -p name
- Export आहे?
printenv name
- Expansion trace.
bash -x s.sh
- Unquoted वापर शोधा.
shellcheck s.sh
- Hidden characters.
printf '%q\n' "$name"
14. Lab 1: Backup name builder
हे का लागतं?
Host, date आणि folder वापरून safe backup file नाव बनवणारा script variables, $( ) आणि string tricks ने लिहा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Folder.
mkdir -p ~/lab38 && cd ~/lab38
- Variables.
src="/var/www/my site"; host=$(hostname -s); day=$(date +%F)
- नाव बनवा.
base=${src##*/}; name="${host}-${base// /_}-${day}.tgz"; echo "$name"
Output:
web01-my_site-2026-10-25.tgz
- Length check.
echo ${#name}
Output:
28
- Upper case tag.
echo "${host^^}"
Output:
WEB01
- Default target folder.
echo "${DEST:-/backup}/$name"
Output:
/backup/web01-my_site-2026-10-25.tgz
15. Lab 2: Quoting प्रयोग आणि export
हे का लागतं?
Quotes result कसा बदलतात आणि export child scripts ना values कशा देतो ते डोळ्याने बघा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- अवघड files.
touch 'a b.txt' c.txt && ls
Output:
a b.txt c.txt
- Unquoted loop.
for f in $(ls); do echo "[$f]"; done
Output:
[a]
[b.txt]
[c.txt]
- Glob वापरा.
for f in *.txt; do echo "[$f]"; done
Output:
[a b.txt]
[c.txt]
- Child script.
printf '#!/bin/bash\necho "mode=$MODE"\n' | tee child.sh && chmod +x child.sh
- Export शिवाय.
MODE=prod; ./child.sh
Output:
mode=
- Export सह.
export MODE; ./child.sh
Output:
mode=prod
- गणित.
files=$(ls | wc -l); echo "$(( files * 2 )) after copy"
Output:
6 after copy
Ravindra Bagale's Tip
Quote every variable: "$var" and "$(cmd)". If you remember only one rule from this chapter, remember this one. It stops spaces and stars in names from breaking your script or deleting the wrong files.
Ravindra Bagale's Tip – मराठी
प्रत्येक variable quote करा: "$var" आणि "$(cmd)". या chapter मधला एकच नियम लक्षात ठेवायचा असेल तर हाच. नावांमधले spaces आणि stars script बिघडवू देत नाही किंवा चुकीच्या files delete होऊ देत नाही.
Ravindra Bagale's Tip – हिंदी
हर variable को quote कीजिए: "$var" और "$(cmd)". इस chapter का एक ही नियम याद रखना हो तो यही. नामों में spaces और stars script नहीं बिगाड़ते और गलत files delete नहीं होतीं.
16. नेहमी विचारले जाणारे प्रश्न
प्र. $var की ${var}?
सारखंच; नंतर text असेल तर braces.
प्र. = भोवती space का नको?
Bash नाव command म्हणून वाचेल.
प्र. Backticks की $( )?
$( ): nest होतं आणि वाचायला सोपं.
प्र. Bash decimals करतो?
नाही; bc किंवा awk.
प्र. सगळे variables कसे बघायचे?
declare -p किंवा set.
प्र. Lower की upper नावं?
तुमच्यासाठी lower, environment साठी upper.
प्र. export -n काय करतो?
Export mark काढतो.
प्र. Passwords साठी $RANDOM safe?
नाही; openssl rand.
17. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. Variable कसा बनवायचा?
name=value, spaces नाहीत.
प्र. Single vs double quotes?
Single: literal. Double: variables expand.
प्र. Command output साठवायचा?
x=$(command).
प्र. String ची length?
${#var}.
Mid level level
प्र. ${v:-d} vs ${v:=d}?
पहिला फक्त d देतो; दुसरा साठवतोही.
प्र. "$var" quote का?
Word splitting आणि globbing थांबवायला.
प्र. Extension काढायचं?
${f%.*}.
प्र. export काय करतो?
Child processes ना variable देतो.
Senior level
प्र. Bash expansion order?
Brace, tilde, parameter/command/arithmetic, word split, glob, quote removal.
प्र. for f in $(ls) वाईट का?
नावं spaces वर तुटतात; globs वापरा.
प्र. Arithmetic मधे 08?
10#08 किंवा leading zeros काढा.
प्र. Secret required कसा?
set -u सह ${SECRET:?message}.
घरी करून बघा
- तुमचा user, /etc मधल्या files ची संख्या आणि / वर वापरलेल्या disk चे percent दाखवणारा script लिहा.
- Spaces असलेलं file नाव variable मधे घ्या आणि एकदा quotes सह आणि एकदा शिवाय print करा. काय बदललं ते लिहा.
सराव Tasks
Vidarbha Cotton Mills हा नागपूर मधला वस्त्रोद्योग व्यवसाय आहे. Ganesh Wankhede त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 21
सोपं Variable set
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: Kothrud शब्द area नावाच्या variable मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Quotes सह print
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: branch variable double quotes मधे print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं whoami पकडा
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: whoami चा output me variable मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Length
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: mobile variable ची length print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Upper case
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: state variable upper case मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Lower case
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: CODE variable lower case मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं गुणाकार
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: Bash arithmetic ने 12 गुणिले 8.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Export
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: APP_ENV variable qa value सह एका command मधे export.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम नावात महिना
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: 2026-10 सारखा current year-month date ने ym variable मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Default value
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: REGION variable print करा, रिकामा असेल तर ap-south-1.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Extension काढा
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: doc variable .odt शेवटाशिवाय print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम फक्त file नाव
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: p path variable चा फक्त file नाव भाग (शेवटच्या slash नंतर), parameter expansion ने.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम सगळे बदला
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: title variable मधला प्रत्येक space dash करून print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम पहिले तीन
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: ifsc variable चे पहिले 3 characters.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम बाकी
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: 47 ला 6 ने भागल्यावर बाकी.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Decimals
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: bc ने 22 भागिले 7, 3 decimals सह.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम एका command साठी
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: फक्त त्या command साठी TZ Europe/London ठेवून date.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Constant
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: 0.18 value सह read-only GST variable.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Required
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: TOKEN print करा, रिकामा असेल तर "TOKEN missing" message सह थांबा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Leading zero
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: Base ten force करून 09 अधिक 1.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Temp folder
का: चुकीचं quoting BIZ च्या scripts spaces असलेल्या file नावांवर बिघडवतं.
काय करायचं: Private temporary directory बनवा आणि path tmpd मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
18. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- name=value, spaces नाहीत; $name ने वाचा.
- Double quotes expand करतात पण spaces ठेवतात.
- Single quotes सगळं literal ठेवतात.
- $(cmd) output पकडतं.
- ${v:-d}, ${#v}, ${v%.*} आणि $(( )) defaults, length, cuts आणि गणित.
- export child processes ना variables देतो.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.