01 ರ 01
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಥಿಂಗ್ಸ್ ಹೋಲಿಸುವುದು
BASH ಟ್ಯುಟೋರಿಯಲ್ನ ಹಿಂದಿನ ಭಾಗದಲ್ಲಿ ನಾವು ಶರತ್ತಿನ ಹೇಳಿಕೆಗಳನ್ನು ನೋಡಿದ್ದೇವೆ.
ಆ ಮಾರ್ಗದರ್ಶಿ ತುಂಬಾ ಉದ್ದವಾಗಿದೆ ಆದರೆ ತರ್ಕದ ಹರಿವನ್ನು ಹೇಗೆ ನಿಯಂತ್ರಿಸುವುದು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಈ ಮಾರ್ಗದರ್ಶಿ ನೀವು ಅಸ್ಥಿರಗಳನ್ನು ಹೋಲಿಕೆ ಮಾಡುವ ವಿವಿಧ ವಿಧಾನಗಳನ್ನು ತೋರಿಸುತ್ತದೆ.
ಮೇಲಿನ ವಾರದ ಈ ವಾರ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ಮೊದಲ ಉದಾಹರಣೆ ತೋರಿಸುತ್ತದೆ:
#! / ಬಿನ್ / ಬ್ಯಾಷ್
name1 = "ಗ್ಯಾರಿ"
name2 = "bob"["$ name1" = "$ name2"] ವೇಳೆ
ನಂತರ
ಪ್ರತಿಧ್ವನಿ "ಹೆಸರುಗಳು ಹೊಂದಾಣಿಕೆ"
ಬೇರೆ
ಪ್ರತಿಧ್ವನಿ "ಹೆಸರುಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ"
fi
ಮೇಲಿನ ಲಿಪಿಯಲ್ಲಿ ನಾನು name1 ಮತ್ತು name2 ಎಂಬ ಎರಡು ಅಸ್ಥಿರಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿದ್ದೇನೆ ಮತ್ತು ಅವುಗಳನ್ನು "ಗ್ಯಾರಿ" ಮತ್ತು "ಬಾಬ್" ಮೌಲ್ಯಗಳನ್ನು ನಿಯೋಜಿಸಿದೆ. ಉದ್ಧರಣ ಚಿಹ್ನೆಯು ಉದ್ಧರಣಾ ಚಿಹ್ನೆಗಳ ನಡುವೆ ಇರುವಂತೆ, ಅವುಗಳನ್ನು ಟ್ಯುಟೋರಿಯಲ್ ಮುಂದುವರೆದಂತೆ ಹೆಚ್ಚು ಸಂಬಂಧಿತವಾಗುವ ಸ್ಟ್ರಿಂಗ್ ವೇರಿಯಬಲ್ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.
ಎಲ್ಲಾ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು $ name1 ಮತ್ತು $ name2 ನ ಮೌಲ್ಯವನ್ನು ಹೋಲಿಕೆ ಮಾಡುತ್ತವೆ ಮತ್ತು ಅವರು ಔಟ್ಪುಟ್ಗೆ ಹೋದರೆ ಸ್ಟ್ರಿಂಗ್ "ಹೆಸರುಗಳು ಹೊಂದಿಕೆಯಾಗುತ್ತವೆ" ಮತ್ತು ಅವರು ಔಟ್ಪುಟ್ ಅನ್ನು ಮಾಡದಿದ್ದರೆ "ಹೆಸರುಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ".
$ Name1 ಮತ್ತು $ name2 ಅಸ್ಥಿರಗಳ ಸುತ್ತಲಿನ ಉದ್ಧರಣ ಚಿಹ್ನೆಯು ಮುಖ್ಯವಾಗಿದೆ ಏಕೆಂದರೆ ಅವುಗಳಲ್ಲಿ ಒಂದನ್ನು ಹೊಂದಿಸದಿದ್ದಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್ ಇನ್ನೂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ $ name1 ಎಂದಿಗೂ ಹೊಂದಿಸದಿದ್ದರೆ ನೀವು "" ಬಾಬ್ "" ನೊಂದಿಗೆ ಹೋಲಿಸುತ್ತೀರಿ. ಉದ್ಧರಣ ಚಿಹ್ನೆಗಳು ಇಲ್ಲದೆ ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ವಿಫಲವಾದ = "ಬಾಬ್" ಜೊತೆ ಬಿಡಲಾಗುತ್ತದೆ.
ನೀವು ಈ ಕೆಳಗಿನಂತೆ ಸಮಾನವಾಗಿಲ್ಲ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲು! = ಸಂಕೇತವನ್ನು ಬಳಸಬಹುದು:
["$ name1"! = "$ name2"] ವೇಳೆ
02 ರ 08
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಸ್ಟ್ರಿಂಗ್ಸ್ ಹೋಲಿಸುವುದು
ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ಪರೀಕ್ಷೆಯು ಅದೇ ಎರಡು ತಂತಿಗಳನ್ನು ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಶ್ನೆಗೆ ವರ್ಣಮಾಲೆಯಲ್ಲಿ ಬಾಬ್ ಮೊದಲು ಬರುವಂತೆ ಕೇಳುತ್ತದೆ?
ಸ್ಪಷ್ಟವಾಗಿ ಉತ್ತರ ಇಲ್ಲ.
ಸ್ಕ್ರಿಪ್ಟ್ ಆಯೋಜಕರು (<) ಗಿಂತ ಕಡಿಮೆ ಪರಿಚಯಿಸುತ್ತದೆ. ಮರುನಿರ್ದೇಶನಕ್ಕಾಗಿ ಸಹ ನಿರ್ವಾಹಕರನ್ನು ಕಡಿಮೆ ಬಳಸುವುದರಿಂದ ನೀವು ಅದನ್ನು ಸ್ಲ್ಯಾಶ್ (\) ನಿಂದ ತಪ್ಪಿಸಿಕೊಳ್ಳಬೇಕು, ಅದಕ್ಕಿಂತ ಕಡಿಮೆ ಇರುವ ಕಾರಣದಿಂದಾಗಿ, ಮೇಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ "$ name1" \ "$ name2" ಅನ್ನು ನಾನು ಹೋಲಿಸಿದ್ದೇನೆ.
ಕಡಿಮೆಗಿಂತಲೂ ಕಡಿಮೆಯಿರುವುದು ನಿಸ್ಸಂಶಯವಾಗಿ ಹೆಚ್ಚು. \
ಉದಾಹರಣೆಗೆ
["$ name1" \> "$ name2"] ವೇಳೆ
03 ರ 08
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಸ್ಟ್ರಿಂಗ್ಸ್ ಹೋಲಿಸುವುದು
ವೇರಿಯೇಬಲ್ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದೆಯೆ ಎಂದು ನೀವು ಪರೀಕ್ಷಿಸಲು ಬಯಸಿದರೆ ನೀವು ಕೆಳಗಿನ ಪರೀಕ್ಷೆಯನ್ನು ಬಳಸಬಹುದು:
ವೇಳೆ [-n $ name2]
ಮೇಲಿನ ಲಿಪಿಯಲ್ಲಿ ನಾನು $ name2 ಗೆ ಮೌಲ್ಯವನ್ನು ನೀಡಲಾಗಿದೆಯೆ ಎಂದು ಪರೀಕ್ಷಿಸಿದ್ದೇನೆ ಮತ್ತು "ಇಲ್ಲ ಬಾಬ್ ಇಲ್ಲ, ಬಾಬ್ ಕಾಣಿಸಿಕೊಳ್ಳಲಿಲ್ಲ" ಎಂಬ ಸಂದೇಶವನ್ನು ನೀಡದಿದ್ದರೆ.
08 ರ 04
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಸ್ಟ್ರಿಂಗ್ಸ್ ಹೋಲಿಸುವುದು
ಹಿಂದಿನ ಸ್ಲೈಡ್ನಲ್ಲಿ ನಾವು ಒಂದು ವೇರಿಯೇಬಲ್ ಅನ್ನು ಹೊಂದಿಸಿದ್ದಲ್ಲಿ ಅಥವಾ ಇಲ್ಲವೇ ಎಂದು ನಾವು ಆವರಿಸಿದ್ದೇವೆ. ಕೆಲವೊಮ್ಮೆ ವೇರಿಯಬಲ್ ಅನ್ನು ಹೊಂದಿಸಬಹುದಾದರೂ, ಅದು ನಿಜವಾಗಿ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಲ್ಲದಿರಬಹುದು.
ಉದಾಹರಣೆಗೆ:
name1 = ""
ವೇರಿಯೇಬಲ್ಗೆ ಮೌಲ್ಯ ಅಥವಾ ಇಲ್ಲವೋ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸಲು (ಅಂದರೆ ಶೂನ್ಯದ ಉದ್ದವಿದೆ) -z ಈ ಕೆಳಗಿನಂತೆ ಬಳಸುತ್ತದೆ:
ವೇಳೆ [-z $ name1]
ಮೇಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ನಾನು ಶೂನ್ಯ ಉದ್ದದ ಸ್ಟ್ರಿಂಗ್ಗೆ $ ನೇಮ್ 1 ಅನ್ನು ಹೊಂದಿದ್ದೇನೆ ಮತ್ತು ಅದನ್ನು -z ಅನ್ನು ಬಳಸಿ ಹೋಲಿಸಿದೆ. $ Name1 ಯು ಸುದೀರ್ಘವಾಗಿ ಶೂನ್ಯವಾಗಿದ್ದರೆ ಸಂದೇಶವನ್ನು "ಸಂಜೆಯ ಸಮಯದಲ್ಲಿ ಗ್ಯಾರಿ ಹೊರಬಿತ್ತು" ತೋರಿಸುತ್ತದೆ.
05 ರ 08
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಸಂಖ್ಯೆಯನ್ನು ಹೋಲಿಸುವುದು
ಇಲ್ಲಿಯವರೆಗೆ ಎಲ್ಲಾ ಹೋಲಿಕೆಗಳು ತಂತಿಗಳಾಗಿದ್ದವು. ಸಂಖ್ಯೆಯನ್ನು ಹೋಲಿಸುವ ಬಗ್ಗೆ ಏನು?
ಮೇಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ ಎರಡು ಸಂಖ್ಯೆಗಳನ್ನು ಹೋಲಿಸುವ ಉದಾಹರಣೆ ತೋರಿಸುತ್ತದೆ:
#! / ಬಿನ್ / ಬ್ಯಾಷ್
a = 4
b = 5ವೇಳೆ [$ a = $ b]
ನಂತರ
ಪ್ರತಿಧ್ವನಿ "4 = 5"
ಬೇರೆ
ಪ್ರತಿಧ್ವನಿ "4 ಸಮಾನವಾಗಿಲ್ಲ 5"
fi
ಸಂಖ್ಯೆಯನ್ನು ಹೊಂದಲು ವೇರಿಯೇಬಲ್ ಅನ್ನು ಹೊಂದಿಸಲು ಅದನ್ನು ಉದ್ಧರಣ ಚಿಹ್ನೆಗಳಿಲ್ಲದೆ ಹೊಂದಿಸಿ. ನಂತರ ನೀವು ಸಂಖ್ಯೆಯನ್ನು ಸಮ ಚಿಹ್ನೆಯೊಂದಿಗೆ ಹೋಲಿಕೆ ಮಾಡಬಹುದು.
ಎರಡು ಸಂಖ್ಯೆಯನ್ನು ಹೋಲಿಸಲು ಈ ಕೆಳಗಿನ ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಲು ನಾನು ಬಯಸುತ್ತೇನೆ:
[$ A -q $ b]
08 ರ 06
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಸಂಖ್ಯೆಯನ್ನು ಹೋಲಿಸುವುದು
ಒಂದು ಸಂಖ್ಯೆಯು ಮತ್ತೊಂದು ಸಂಖ್ಯೆಯಿಗಿಂತ ಕಡಿಮೆಯಿದೆಯೆ ಎಂದು ನೀವು ಹೋಲಿಸಿ ನೋಡಿದರೆ ನೀವು ಆಪರೇಟರ್ (<) ಗಿಂತ ಕಡಿಮೆ ಬಳಸಬಹುದು. ತಂತಿಗಳಂತೆ ನೀವು ಓರ್ವ ಸ್ಲ್ಯಾಷ್ನೊಂದಿಗೆ ಆಪರೇಟರ್ಗಿಂತ ಕಡಿಮೆ ತಪ್ಪಿಸಿಕೊಳ್ಳಲು ಮಾಡಬೇಕು. (\ <).
ಈ ಕೆಳಗಿನ ಸಂವಾದವನ್ನು ಬಳಸುವುದು ಸಂಖ್ಯೆಗಳನ್ನು ಹೋಲಿಸುವ ಉತ್ತಮ ವಿಧಾನವಾಗಿದೆ:
- -lt ಗಿಂತ ಕಡಿಮೆ
- ಕಡಿಮೆ ಅಥವಾ ಸಮಾನವಾಗಿರುತ್ತದೆ
- -gt ಗಿಂತ ದೊಡ್ಡದು
- ದೊಡ್ಡದಾದ ಅಥವಾ ಸಮನಾಗಿರುತ್ತದೆ
ಉದಾಹರಣೆಗೆ:
[$ a-lt $ b]
ವೇಳೆ [$ a -le $ b]
[$ a -ge $ b]
ವೇಳೆ [$ a-gt $ b]
07 ರ 07
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಸಂಖ್ಯೆಯನ್ನು ಹೋಲಿಸುವುದು
ಅಂತಿಮವಾಗಿ ಈ ಮಾರ್ಗದರ್ಶಿಗಾಗಿ, ಎರಡು ಸಂಖ್ಯೆಗಳು ವಿಭಿನ್ನವಾಗಿವೆಯೆ ಎಂದು ಪರೀಕ್ಷಿಸಲು ನೀವು ಬಯಸಿದರೆ ನೀವು ಈ ಕೆಳಗಿನಂತೆ ನಿರ್ವಾಹಕರನ್ನು (<>) ಅಥವಾ -ne ಗಿಂತ ಕಡಿಮೆ ಮತ್ತು ಕಡಿಮೆ ಬಳಸಬಹುದು:
[$ a <> $ b]
ವೇಳೆ [$ a-$ $ b]
08 ನ 08
ಬಿಗಿನರ್ಸ್ ಗೈಡ್ ಟು ಬ್ಯಾಷ್ - ಹೋಲಿಕೆ ಆಪರೇಟರ್ಸ್ - ಸಾರಾಂಶ
ಈ ಮಾರ್ಗದರ್ಶಿಯ ಮೊದಲ ಮೂರು ಭಾಗಗಳನ್ನು ನೀವು ತಪ್ಪಿ ಹೋದರೆ ಕೆಳಗಿನ ಲಿಂಕ್ಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಅವುಗಳನ್ನು ಕಾಣಬಹುದು:
ಮಾರ್ಗದರ್ಶಿಯ ಮುಂದಿನ ಭಾಗದಲ್ಲಿ ನಾನು ಅಂಕಗಣಿತವನ್ನು ಒಳಗೊಳ್ಳುತ್ತಿದ್ದೇನೆ.