ਬੈਸ਼ ਸੈੱਟ -ਈ - ਸੈੱਟ -ਈ ਬੈਸ਼

ਬੈਸ਼ ਵਿੱਚ set -e: ਤੁਹਾਡੀ ਸਕ੍ਰਿਪਟ ਬਿਨਾਂ ਚੇਤਾਵਨੀ ਦੇ ਕਿਉਂ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ

ਵਿਸ਼ਾ - ਸੂਚੀ

ਪੜ੍ਹਨਯੋਗ ਪੋਸਟਾਂ

ਦਿਲਚਸਪੀ ਵਾਲੀਆਂ ਨਵੀਨਤਮ ਪੋਸਟਾਂ

ਸੈੱਟ-ਈ ਕਿਵੇਂ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਹ ਤੁਹਾਡੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਕਿੱਥੇ ਤੋੜਦਾ ਹੈ

ਦਾ ਇਸਤੇਮਾਲ ਕਰਕੇ ਸੈੱਟ-ਈ Bash ਵਿੱਚ ਕਿਸੇ ਵੀ ਗਲਤੀ 'ਤੇ ਬਾਹਰ ਨਿਕਲ ਕੇ ਤੁਹਾਡੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ। ਪਰ ਅਸਲ ਵਰਕਫਲੋ ਵਿੱਚ, set-e ਅਕਸਰ ਸੂਖਮ, ਚੁੱਪ ਤਰੀਕਿਆਂ ਨਾਲ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਤੋੜਦਾ ਹੈ। ਡਿਵੈਲਪਰ ਰੱਖਿਆਤਮਕ ਸਕ੍ਰਿਪਟਿੰਗ ਲਈ bash set -e 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ, ਸਿਰਫ ਇਹ ਪਤਾ ਲਗਾਉਣ ਲਈ ਕਿ ਉਹਨਾਂ ਦੀਆਂ CI ਨੌਕਰੀਆਂ ਬਿਨਾਂ ਕਿਸੇ ਗਲਤੀ ਸੁਨੇਹੇ ਦੇ ਅਚਾਨਕ ਬਾਹਰ ਨਿਕਲ ਜਾਂਦੀਆਂ ਹਨ।

ਇੱਥੇ set-e bash ਅਸਲ ਵਿੱਚ ਕੀ ਕਰਦਾ ਹੈ:

  • ਜੇਕਰ ਕੋਈ ਕਮਾਂਡ ਗੈਰ-ਜ਼ੀਰੋ ਸਥਿਤੀ ਵਾਪਸ ਕਰਦੀ ਹੈ ਤਾਂ ਸਕ੍ਰਿਪਟ ਤੋਂ ਬਾਹਰ ਆ ਜਾਂਦਾ ਹੈ।
  • ਪਰ ਵਿੱਚ ਗਲਤੀਆਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰਦਾ ਹੈ pipelines, ਕੰਡੀਸ਼ਨਲ, ਸਬਸ਼ੈੱਲ, ਅਤੇ ਕਮਾਂਡ ਗਰੁੱਪ, ਜਦੋਂ ਤੱਕ ਕਿ ਇਹਨਾਂ ਨਾਲ ਜੋੜਾਬੱਧ ਨਾ ਕੀਤਾ ਜਾਵੇ ਪਾਈਪ ਫਾਈਲ ਸੈੱਟ ਕਰੋ ਜਾਂ ਹੋਰ ਪੈਟਰਨ।

ਉਦਾਹਰਨ: ਚੁੱਪ ਅਸਫਲਤਾ

⚠️ਚੇਤਾਵਨੀ: ਇਹ ਸਕ੍ਰਿਪਟ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ।

ਸਬਸ਼ੈੱਲ ਵਿੱਚ ਗਲਤੀ ਨੂੰ bash ਦੁਆਰਾ ਅਣਡਿੱਠਾ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਅਗਲਾ_ਕਦਮ ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਚਲਾਉਂਦਾ ਹੈ, ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਮਾੜੇ ਇਨਪੁੱਟ 'ਤੇ।

ਇਹ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸੈੱਟ-ਈ ਨੂੰ ਖ਼ਤਰਨਾਕ ਬਣਾਉਂਦੀਆਂ ਹਨ ਜੇਕਰ ਤੁਸੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਹੀਂ ਸਮਝਦੇ ਕਿ ਇਹ ਕਦੋਂ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਅਤੇ ਕਦੋਂ ਇਹ ਚੁੱਪਚਾਪ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ।

ਰੀਅਲ CI/CD Pipeline ਸੈੱਟ -ਈ ਬੈਸ਼ ਕਾਰਨ ਹੋਈਆਂ ਅਸਫਲਤਾਵਾਂ

set -e bash ਅਕਸਰ ਅੰਦਰੋਂ ਸਭ ਤੋਂ ਵੱਧ ਦਰਦ ਦਿੰਦਾ ਹੈ CI/CD pipelines.

 ਅਸਲ ਸੰਸਾਰ pipeline ਅਸਫਲਤਾ:

⚠️ਚੇਤਾਵਨੀ: ਇਸ ਕਾਰਨ ਹੁੰਦਾ ਹੈ pipeline ਫੇਲ੍ਹ ਹੋਏ ਟੈਸਟਾਂ ਦੇ ਬਾਵਜੂਦ ਪਾਸ ਹੋਣਾ। ਕਮਾਂਡ ਇੱਕ ਲਾਜ਼ੀਕਲ ਐਕਸਪ੍ਰੈਸ਼ਨ ਦਾ ਹਿੱਸਾ ਹੈ, ਇਸ ਲਈ ਸੈੱਟ-ਈ ਟਰਿੱਗਰ ਨਹੀਂ ਹੁੰਦਾ।

ਇੱਕ ਹੋਰ ਟੁੱਟਿਆ ਹੋਇਆ ਪੈਟਰਨ:

⚠️ਇਹ ਪੈਟਰਨ ਭਵਿੱਖ ਦੀਆਂ ਗਲਤੀਆਂ ਦੇ ਅਸਲ ਕਾਰਨ ਨੂੰ ਛੁਪਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਡੀਬੱਗਿੰਗ ਔਖੀ ਹੋ ਜਾਂਦੀ ਹੈ।

bash ਦੀ ਅਸੁਰੱਖਿਅਤ ਵਰਤੋਂ ਮਹੱਤਵਪੂਰਨ ਕਦਮਾਂ ਨੂੰ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋਣ ਦਿੰਦੀ ਹੈ। ਇਹ ਇੱਕ DevOps ਐਂਟੀ-ਪੈਟਰਨ ਹੈ।

ਸੁਰੱਖਿਅਤ ਬੈਸ਼ ਸਕ੍ਰਿਪਟਿੰਗ: ਟ੍ਰੈਪਸ ਅਤੇ ਵੈਲੀਡੇਸ਼ਨ ਨਾਲ ਸੈੱਟ-ਈ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨਾ

ਸੈੱਟ ਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾਉਣ ਲਈ, ਇਹ ਕੰਟਰੋਲ ਕਰੋ ਕਿ ਇਹ ਤੁਹਾਡੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਕਦੋਂ ਅਤੇ ਕਿਵੇਂ ਅਸਫਲ ਕਰਦਾ ਹੈ।

 ਇੱਕ ਵਰਤੋ ਫੈਂਪ ਗਲਤੀ ਟਰੇਸਿੰਗ ਲਈ

ਨਾਲ ਮਿਲਾਓ ਪਾਈਪ ਫਾਈਲ ਸੈੱਟ ਕਰੋ

ਨਾਲ ਪਾਈਪਫੇਲ, ਸੈੱਟ-ਈ ਬੈਸ਼ ਦੇ ਕਿਸੇ ਵੀ ਹਿੱਸੇ ਵਿੱਚ ਅਸਫਲਤਾਵਾਂ ਫੜ ਲਵੇਗਾ। pipeline.

 ਜੋਖਮ ਭਰੇ ਆਦੇਸ਼ਾਂ ਤੋਂ ਬਾਅਦ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਪ੍ਰਮਾਣਿਤ ਕਰੋ

ਇਹ ਮੰਨਣ ਤੋਂ ਬਚੋ ਕਿ ਸੈੱਟ-ਈ ਹਰ ਅਸਫਲਤਾ ਨੂੰ ਫੜਦਾ ਹੈ; ਨਾਜ਼ੁਕ ਤਰਕ ਲਈ ਨਿਯੰਤਰਿਤ ਜਾਂਚਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਵਿੱਚ ਰੱਖਿਆਤਮਕ ਬੈਸ਼ ਪੈਟਰਨਾਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ CI/CD Pipelines

ਤੁਸੀਂ ਸੈੱਟ-ਈ ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਚ ਨਹੀਂ ਸਕਦੇ। ਪਰ ਤੁਸੀਂ ਚੰਗੇ ਬੈਸ਼ ਅਭਿਆਸਾਂ ਨੂੰ ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਕੇ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾ ਸਕਦੇ ਹੋ CI/CD ਵਰਕਫਲੋਜ਼

CI/CD ਸੁਝਾਅ:

  • ਹਮੇਸ਼ਾ ਸੈੱਟ-ਈ ਨੂੰ ਇਸ ਨਾਲ ਜੋੜੋ ਪਾਈਪਫੇਲ ਅਤੇ ਫੈਂਪ ਐਂਟਰੀ ਸਕ੍ਰਿਪਟਾਂ ਵਿੱਚ।
  • ਵਾਤਾਵਰਣ ਵਾਰਾਂ ਅਤੇ ਸਕ੍ਰਿਪਟ ਨਤੀਜਿਆਂ ਦੀ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਜਾਂਚ ਕਰੋ।
  • ਵਰਤੋ ਟੀ ਜਾਂ ਬਾਹਰ ਨਿਕਲਣ ਤੋਂ ਪਹਿਲਾਂ ਕੀ ਹੋਇਆ ਸੀ ਇਹ ਦੇਖਣ ਲਈ ਲੌਗ ਕੈਪਚਰ ਕਰੋ।
  • ਕਦਮਾਂ ਨੂੰ ਵੱਖ ਕਰੋ ਅਤੇ ਹਰੇਕ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ।

 ਸੁਰੱਖਿਅਤ CI pipeline ਖੰਡ

ਇਹ ਤੁਹਾਡੀਆਂ ਇਮਾਰਤਾਂ ਦੀ ਰੱਖਿਆ ਕਰਦਾ ਹੈ ਲੁਕੀਆਂ ਹੋਈਆਂ ਅਸਫਲਤਾਵਾਂ ਤੋਂ ਜਿਨ੍ਹਾਂ ਨੂੰ ਇਹ ਸ਼ਾਇਦ ਅਣਡਿੱਠ ਕਰ ਦੇਵੇ।

Xygeni ਨਾਲ ਲੁਕੀਆਂ ਹੋਈਆਂ ਬੈਸ਼ ਅਸਫਲਤਾਵਾਂ ਦਾ ਪਤਾ ਲਗਾਓ

ਜਾਲਾਂ ਦੇ ਨਾਲ ਵੀ, ਕੁਝ ਅਸਫਲਤਾਵਾਂ ਸਕ੍ਰਿਪਟਾਂ ਜਾਂ ਨਿਰਭਰਤਾਵਾਂ ਵਿੱਚ ਡੂੰਘੀਆਂ ਦੱਬੀਆਂ ਹੁੰਦੀਆਂ ਹਨ। ਇਹੀ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਜ਼ਾਇਗੇਨੀ ਮਦਦ ਕਰਦਾ ਹੈ ਜ਼ਾਇਜੇਨੀ ਇਹਨਾਂ ਦੁਆਰਾ ਦ੍ਰਿਸ਼ਟੀ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ:

  • ਪਤਾ ਲਗਾਉਣਾ ਕਿ set -e bash ਕਿੱਥੇ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਦਬਾਉਂਦਾ ਹੈ
  • ਬਿਲਡ ਜੌਬਸ ਵਿੱਚ ਕਮਾਂਡ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਟ੍ਰੇਸ ਕਰਨਾ
  • ਸਕ੍ਰਿਪਟ ਆਉਟਪੁੱਟ, ਗਲਤੀਆਂ, ਅਤੇ ਨਿਯੰਤਰਣ ਪ੍ਰਵਾਹ ਨੂੰ ਆਪਸ ਵਿੱਚ ਜੋੜਨਾ
  • ਕਮਾਂਡ ਗਰੁੱਪਿੰਗ ਜਾਂ ਲਾਜ਼ੀਕਲ ਸਮੀਕਰਨਾਂ ਕਾਰਨ ਸਰਫੇਸਿੰਗ ਅਸਫਲਤਾਵਾਂ ਖੁੰਝ ਗਈਆਂ

ਇਹ ਟੀਮਾਂ ਨੂੰ ਤੁਹਾਡੇ ਚੁੱਪਚਾਪ ਤੋੜਨ ਤੋਂ ਪਹਿਲਾਂ bash set -e ਲੌਜਿਕ ਮੁੱਦਿਆਂ ਨੂੰ ਟਰੇਸ ਕਰਨ ਅਤੇ ਠੀਕ ਕਰਨ ਦਿੰਦਾ ਹੈ pipeline.

ਸੈੱਟ-ਈ ਬੈਸ਼ 'ਤੇ ਨਿਰਭਰ ਹੋਣ ਦੀ ਲੁਕਵੀਂ ਕੀਮਤ

ਇਹ ਮਦਦਗਾਰ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਇਹ ਡਿਫਾਲਟ ਤੌਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਗਲਤੀ ਸੰਭਾਲਣ ਲਈ ਇਸ 'ਤੇ ਭਰੋਸਾ ਕਰ ਰਹੇ ਹੋ CI/CD, ਤੁਸੀਂ ਸ਼ਾਇਦ ਅਸਲ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਗੁਆ ਰਹੇ ਹੋ।

ਆਪਣੇ set -e bash ਵਰਤੋਂ ਦਾ ਆਡਿਟ ਕਰੋ:

  • ਵਰਤੋ ਪਾਈਪਫੇਲ, ਫੈਂਪ, ਅਤੇ ਸਪਸ਼ਟ ਜਾਂਚਾਂ
  • ਕਮਾਂਡ ਨਤੀਜਿਆਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰੋ, ਸਿਰਫ਼ ਐਗਜ਼ਿਟ ਕੋਡਾਂ ਦੀ ਹੀ ਨਹੀਂ
  • ਆਪਣੇ ਨੂੰ ਰੋਕੋ CI/CD ਜਦੋਂ ਅਸਫਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਸਫਲ ਹੋਣ ਤੋਂ ਨੌਕਰੀਆਂ

bash set -e ਕਾਰਨ ਹੋਣ ਵਾਲੀਆਂ ਲੁਕੀਆਂ ਹੋਈਆਂ ਤਰਕ ਗਲਤੀਆਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ Xygeni ਦੀ ਵਰਤੋਂ ਕਰੋ, ਅਤੇ ਆਪਣੀ ਸਕ੍ਰਿਪਟਿੰਗ ਨੂੰ ਲਚਕੀਲਾ, ਟਰੇਸੇਬਲ ਅਤੇ ਸੁਰੱਖਿਅਤ ਬਣਾਓ। ਸਕ੍ਰਿਪਟਾਂ ਝੂਠ ਨਹੀਂ ਬੋਲਦੀਆਂ, ਪਰ ਉਹ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। ਸੈੱਟ-ਈ ਨੂੰ ਕਾਰਨ ਨਾ ਬਣਨ ਦਿਓ।

sca-ਟੂਲਜ਼-ਸਾਫਟਵੇਅਰ-ਰਚਨਾ-ਵਿਸ਼ਲੇਸ਼ਣ-ਟੂਲਜ਼
ਆਪਣੇ ਸਾਫਟਵੇਅਰ ਜੋਖਮਾਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ, ਸੁਧਾਰੋ ਅਤੇ ਸੁਰੱਖਿਅਤ ਕਰੋ
ਆਪਣਾ ਮੁਫ਼ਤ ਖਾਤਾ ਪ੍ਰਾਪਤ ਕਰੋ।
ਕੋਈ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ

ਆਪਣੇ ਸਾਫਟਵੇਅਰ ਵਿਕਾਸ ਅਤੇ ਡਿਲੀਵਰੀ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ

ਜ਼ਾਇਜੇਨੀ ਪ੍ਰੋਡਕਟ ਸੂਟ ਦੇ ਨਾਲ