ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਗਾਈਡ - ਤੁਲਨਾ ਕਰਨ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ

01 ਦੇ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਗਾਈਡ - ਤੁਲਨਾ ਕਰਨ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ

ਬੇਸ ਟਿਊਟੋਰਿਅਲ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

BASH ਟਿਊਟੋਰਿਯਲ ਦੇ ਪਿਛਲੇ ਹਿੱਸੇ ਵਿੱਚ ਅਸੀਂ ਸ਼ਰਤੀਆ ਬਿਆਨ ਵੇਖੋ .

ਇਹ ਗਾਈਡ ਬਹੁਤ ਲੰਮੀ ਸੀ ਪਰ ਵਾਸਤਵ ਵਿਚ ਸਿਰਫ ਤਰਕ ਦੇ ਪ੍ਰਵਾਹ ਨੂੰ ਕਿਵੇਂ ਕਾਬੂ ਕਰਨਾ ਹੈ. ਇਹ ਗਾਈਡ ਵੱਖਰੇ ਢੰਗਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ ਜਿਸ ਵਿਚ ਤੁਸੀਂ ਵੇਰੀਬਲ ਦੀ ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਹੋ.

ਉਪਰੋਕਤ ਚਿੱਤਰ ਇਸ ਹਫ਼ਤੇ ਦੀ ਗਾਈਡ ਵਿੱਚ ਪਹਿਲੀ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦਾ ਹੈ:

#! / bin / bash

name1 = "ਗੈਰੀ"
name2 = "bob"

ਜੇ ["$ name1" = "$ name2"]
ਫਿਰ
ਈਕੋ "ਨਾਂ ਮੇਲ"
ਦੂਜਾ
ਈਕੋ "ਨਾਂ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ"
ਫਾਈ


ਉਪਰੋਕਤ ਸਕਰਿਪਟ ਵਿੱਚ ਮੈਂ ਦੋ ਪਰਿਭਾਸ਼ਿਤਨਾਂ ਨੂੰ ਪ੍ਰਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ, ਜਿਹਨਾਂ ਨੂੰ name1 ਅਤੇ name2 ਕਹਿੰਦੇ ਹਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ "ਗੈਰੀ" ਅਤੇ "ਬੌਬ" ਦੇ ਮੁੱਲਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕੀਤਾ ਹੈ. ਜਿਵੇਂ ਕਿ ਵੇਅਬਲਾਂ ਵਿਚ ਹਵਾਲਾ ਨਿਸ਼ਾਨ ਦੇ ਅੰਦਰ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਸਟ੍ਰਿੰਗ ਵੇਅਰਿਬਲਸ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਜੋ ਕਿ ਟਿਊਟੋਰਿਅਲ ਤੇ ਚੱਲਦੇ ਹਨ.

ਸਭ ਸਕਰਿਪਟ $ name1 ਅਤੇ $ name2 ਦੇ ਮੁੱਲ ਦੀ ਤੁਲਨਾ ਕਰਦੀ ਹੈ ਅਤੇ ਜੇ ਉਹ ਸਤਰ "ਨਾਂ ਦੇ ਮੇਲ" ਨਾਲ ਆਉਟਪੁੱਟ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ ਅਤੇ ਜੇ ਉਹ "ਨਾਂ ਨਹੀਂ ਮਿਲਦੇ" ਤਾਂ ਸਤਰ ਦੀ ਆਉਟਪੁੱਟ ਨਹੀਂ ਕਰਦੇ.

$ Name1 ਅਤੇ $ name2 ਵੇਰੀਏਬਲਾਂ ਦੇ ਹਵਾਲੇ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹਨ ਕਿਉਂਕਿ ਜੇਕਰ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਦਾ ਮੁੱਲ ਨਹੀਂ ਲਗਾਇਆ ਗਿਆ ਤਾਂ ਸਕਰਿਪਟ ਅਜੇ ਵੀ ਕੰਮ ਕਰੇਗੀ.

ਉਦਾਹਰਨ ਲਈ ਜੇਕਰ $ name1 ਕਦੇ ਨਹੀਂ ਚੁਣਿਆ ਗਿਆ ਤਾਂ ਤੁਸੀਂ "ਬੌਬ" ਨਾਲ ਤੁਲਨਾ ਕਰੋਗੇ. ਹਵਾਲਾ ਦੇ ਬਿੰਨਾਂ ਤੋਂ ਬਿਨਾਂ ਤੁਹਾਨੂੰ = "ਬੌਬ" ਦੇ ਨਾਲ ਛੱਡ ਦਿੱਤਾ ਜਾਵੇਗਾ ਜੋ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ.

ਤੁਸੀਂ ਹੇਠ ਦਿੱਤੇ ਅਨੁਸਾਰ ਬਰਾਬਰ ਦੀ ਵਿਆਖਿਆ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ! = ਨਾਪ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ:

ਜੇ ["$ name1"! = "$ name2"]

02 ਫ਼ਰਵਰੀ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਕ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

ਬੇਸ ਟਿਊਟੋਰਿਅਲ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

ਉਪਰੋਕਤ ਉਦਾਹਰਨ ਵਿੱਚ, ਟੈਸਟ ਵਿੱਚ ਦੋ ਸਤਰਾਂ ਦੀ ਤੁਲਨਾ ਕੀਤੀ ਗਈ ਹੈ ਅਤੇ ਕੀ ਪੁੱਛਦਾ ਹੈ ਕਿ ਗੈਰੀ ਅੱਖਰੀ ਵਿੱਚ ਬੌਬ ਤੋਂ ਪਹਿਲਾਂ ਆਉਂਦੀ ਹੈ?

ਸਪੱਸ਼ਟ ਹੈ ਕਿ ਇਸ ਦਾ ਜਵਾਬ ਨਹੀਂ ਹੈ.

ਸਕ੍ਰਿਪਟ ਓਪਰੇਟਰ ਤੋਂ ਘੱਟ (<) ਦਰਸਾਉਂਦਾ ਹੈ. ਕਿਉਂਕਿ ਓਪਰੇਟਰ ਤੋਂ ਘੱਟ ਇਸਤੇਮਾਲ ਕਰਨ ਲਈ ਰਿਟਰੈੱਕਸ਼ਣ ਲਈ ਵੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਸਲੇਸ (\) ਦੇ ਨਾਲ ਛੱਡਣਾ ਪਵੇਗਾ ਕਿਉਂਕਿ ਇਸਦਾ ਮਤਲਬ ਘੱਟ ਹੈ ਕਿਉਂਕਿ ਉੱਪਰਲੀ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਮੈਂ "$ name1" \ "$ name2" ਦੀ ਤੁਲਨਾ ਕੀਤੀ ਹੈ.

ਸਪੱਸ਼ਟ ਹੈ ਕਿ ਇਸ ਤੋਂ ਵੀ ਘੱਟ ਦੇ ਉਲਟ ਹੈ. \ <ਵਰਤੋਂ \> ਵਰਤਣ ਦੀ ਬਜਾਏ.

ਉਦਾਹਰਣ ਲਈ

ਜੇ ["$ name1" \> "$ name2"]

03 ਦੇ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਕ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

ਬੇਸ ਟਿਊਟੋਰਿਅਲ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

ਜੇ ਤੁਸੀਂ ਇਹ ਜਾਂਚ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਕੀ ਵੇਅਰਿਏਬਲ ਦੀ ਇੱਕ ਵੈਲਯੂ ਹੈ ਤਾਂ ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਟੈਸਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ:

ਜੇ [-n $ name2]

ਸਕਰਿਪਟ ਵਿੱਚ ਮੈਂ ਇਸ ਗੱਲ ਦੀ ਪਰਖ ਕੀਤੀ ਹੈ ਕਿ $ name2 ਨੂੰ ਇੱਕ ਮੁੱਲ ਦਿੱਤਾ ਗਿਆ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਜੇ ਇਹ ਸੁਨੇਹਾ ਨਹੀਂ ਹੈ "ਕੋਈ ਬੌਬ ਨਹੀਂ ਹੈ, ਉੱਥੇ ਕਦੇ ਕੋਈ ਬੌਬ ਨਜ਼ਰ ਨਹੀਂ ਆਉਂਦਾ".

04 ਦੇ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਕ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

ਬੇਸ ਟਿਊਟੋਰਿਅਲ - ਸਤਰ ਦੀ ਤੁਲਨਾ ਕਰਨੀ

ਪਿਛਲੀ ਸਲਾਈਡ ਤੇ ਅਸੀਂ ਇਹ ਦੱਸਿਆ ਹੈ ਕਿ ਕੀ ਵੇਰੀਏਬਲ ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ ਜਾਂ ਨਹੀਂ. ਕਦੇ-ਕਦੇ ਭਾਵੇਂ ਇੱਕ ਵੇਰੀਏਬਲ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਪਰ ਅਸਲ ਵਿੱਚ ਇਸਦਾ ਮੁੱਲ ਨਹੀਂ ਹੋ ਸਕਦਾ.

ਉਦਾਹਰਣ ਦੇ ਲਈ:

name1 = ""

ਜਾਂਚ ਕਰਨ ਲਈ ਕਿ ਕੀ ਵੇਅਰਿਏਬਲ ਦਾ ਮੁੱਲ ਹੈ ਜਾਂ ਨਹੀਂ (ਜਿਵੇਂ ਕਿ ਜ਼ੀਰੋ ਦੀ ਲੰਬਾਈ ਹੈ) -z ਵਰਤੋ ਜਿਵੇਂ ਕਿ:

ਜੇ [-z $ name1]

ਉਪਰੋਕਤ ਸਕ੍ਰਿਪਟ ਵਿਚ ਮੈਂ $ 1 ਨੂੰ ਜ਼ੀਰੋ ਲੰਬਾਈ ਸਤਰ ਵਿਚ ਸੈਟ ਕੀਤਾ ਹੈ ਅਤੇ ਫਿਰ ਇਸ ਦੀ ਤੁਲਨਾ -z ਵਰਤ ਕੇ ਕੀਤੀ ਹੈ. ਜੇ $ name1 ਸਤਰ ਦੀ ਲੰਬਾਈ ਹੈ, ਤਾਂ "ਗੈਰੀ ਫੇਅਰ ਔਫ ਫਾਸਟ ਸੀ" ਸੁਨੇਹਾ ਵੇਖਾਇਆ ਜਾਵੇਗਾ.

05 ਦੇ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਕ - ਤੁਲਨਾ ਕਰੋ ਨੰਬਰ

BASH ਟਿਊਟੋਰਿਅਲ - ਤੁਲਨਾ ਕਰਦੇ ਨੰਬਰ

ਇਸ ਤਰ੍ਹਾਂ ਹੁਣ ਤੱਕ ਸਾਰੀਆਂ ਤੁਲਨਾਵਾਂ ਸਤਰ ਲਈ ਦਿੱਤੀਆਂ ਗਈਆਂ ਹਨ. ਨੰਬਰ ਦੀ ਤੁਲਨਾ ਕਰਨ ਬਾਰੇ ਕੀ?

ਉਪਰੋਕਤ ਸਕ੍ਰਿਪਟ ਦੋ ਨੰਬਰਾਂ ਦੀ ਤੁਲਨਾ ਕਰਨ ਦਾ ਇਕ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦੀ ਹੈ:

#! / bin / bash

a = 4
b = 5

ਜੇ [$ a = $ b]
ਫਿਰ
ਈਕੋ "4 = 5"
ਦੂਜਾ
ਈਕੋ "4 ਬਰਾਬਰ 5 ਨਹੀਂ"
ਫਾਈ

ਇੱਕ ਅੰਕ ਬਣਨ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਬਸ ਇਸ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਹਵਾਲਾ ਅੰਕ ਦੇ ਸੈਟ ਕਰੋ. ਫਿਰ ਤੁਸੀਂ ਇੱਕ ਬਰਾਬਰ ਦੇ ਚਿੰਨ ਨਾਲ ਅੰਕ ਦੀ ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਹੋ.

ਮੈਂ ਦੋ ਨੰਬਰ ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ ਹੇਠ ਦਿੱਤੇ ਅਪਰੇਟਰ ਦਾ ਇਸਤੇਮਾਲ ਕਰਨਾ ਪਸੰਦ ਕਰਦਾ ਹਾਂ:

ਜੇ [$ a -q $ b]

06 ਦੇ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਕ - ਤੁਲਨਾ ਕਰੋ ਨੰਬਰ

BASH ਟਿਊਟੋਰਿਅਲ - ਤੁਲਨਾ ਕਰਦੇ ਨੰਬਰ

ਜੇ ਤੁਸੀਂ ਇਹ ਤੁਲਨਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਇੱਕ ਨੰਬਰ ਦੂਜਾ ਨੰਬਰ ਤੋਂ ਘੱਟ ਹੈ ਤਾਂ ਤੁਸੀਂ ਓਪਰੇਟਰ (<) ਤੋਂ ਘੱਟ ਇਸਤੇਮਾਲ ਕਰ ਸਕਦੇ ਹੋ. ਸਤਰਾਂ ਦੇ ਨਾਲ ਤੁਹਾਨੂੰ ਸਲੇਸ ਦੇ ਨਾਲ ਓਪਰੇਟਰ ਤੋਂ ਘੱਟ ਬਚਣਾ ਪਵੇਗਾ. (\ <)

ਨੰਬਰ ਦੀ ਤੁਲਨਾ ਕਰਨ ਦਾ ਇੱਕ ਬਿਹਤਰ ਤਰੀਕਾ ਇਹ ਹੈ ਕਿ:

ਉਦਾਹਰਣ ਲਈ:

ਜੇ [$ a -lt $ b]

ਜੇ [$ a -le $ b]

ਜੇ [$ a -ge $ b]

ਜੇ [$ a -gt $ b]

07 ਦੇ 08

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਮਾਰਗਦਰਸ਼ਕ - ਤੁਲਨਾ ਕਰੋ ਨੰਬਰ

BASH ਟਿਊਟੋਰਿਅਲ - ਤੁਲਨਾ ਕਰਦੇ ਨੰਬਰ

ਅਖੀਰ ਇਸ ਗਾਈਡ ਲਈ, ਜੇ ਤੁਸੀਂ ਇਹ ਟੈਸਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਦੋ ਨੰਬਰ ਵੱਖਰੇ ਹਨ ਜਾਂ ਨਹੀਂ ਤਾਂ ਤੁਸੀਂ ਓਪਰੇਟਰਾਂ (ਅਤੇ <>) ਤੋਂ ਘੱਟ ਅਤੇ ਇਸ ਤੋਂ ਘੱਟ ਇਸਤੇਮਾਲ ਕਰ ਸਕਦੇ ਹੋ:

ਜੇ [$ a <> $ b]

ਜੇ [$ a -ne $ b]

08 08 ਦਾ

ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਗਾਈਡ - ਤੁਲਨਾ ਆਪਰੇਟਰ - ਸੰਖੇਪ

ਜੇ ਤੁਸੀਂ ਇਸ ਗਾਈਡ ਦੇ ਪਹਿਲੇ ਤਿੰਨ ਹਿੱਸਿਆਂ ਨੂੰ ਗੁਆ ਲਿਆ ਹੈ ਤਾਂ ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ਤੇ ਕਲਿਕ ਕਰ ਕੇ ਉਨ੍ਹਾਂ ਨੂੰ ਲੱਭ ਸਕਦੇ ਹੋ:

ਗਾਈਡ ਦੇ ਅਗਲੇ ਹਿੱਸੇ ਵਿੱਚ ਮੈਂ ਅੰਕਗਣਿਤ ਨੂੰ ਕਵਰ ਕਰਾਂਗਾ.