2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
$
$()
प्रयोगःशेल् इत्यस्य विशेषचराः, स्क्रिप्ट्-मध्ये, फंक्शन्-मध्ये च पैरामीटर्स्-पास्-करणाय उपयुज्यन्ते ।
तत्र निम्नलिखितविशेषस्थानमापदण्डचराः सन्ति ।
चरः | परिणाम |
---|---|
$0 | शेल् स्क्रिप्ट् सञ्चिकानाम स्क्रिप्ट् मार्गं च प्राप्नुवन्तु |
$n | शेल् स्क्रिप्ट् इत्यस्य nth पैरामीटर् प्राप्नुवन्तु यदि 9 तः अधिकं भवति तर्हि केचन{} ,इव{$10} |
$# | निष्पादितस्य शेल् स्क्रिप्ट् इत्यस्य पृष्ठतः पैरामीटर्स् इत्यस्य कुलसङ्ख्यां प्राप्नुवन्तु |
$* | शेल् स्क्रिप्ट् इत्यस्य सर्वाणि पैरामीटर्स् प्राप्नुवन्तु, उद्धरणं विना, तस्य तुल्यम् अस्ति$@ फंक्शन्, प्लस् उद्धरणचिह्नानि "$*", अस्तिसर्वाणि पैरामीटर्स् एकं स्ट्रिंग् रूपेण प्राप्नोति |
$@ | उद्धरणचिह्नं विना प्रभावः उपरिष्टाद् एव भवतिसर्वाणि पैरामीटर्स् स्वतन्त्र स्ट्रिंग् रूपेण प्राप्नुवन्तु |
अन्वेषणविधिः:man bash
,अन्वेषणSpecial Parameters
चरः | परिणाम |
---|---|
$? | अन्तिमस्य आदेशनिष्पादनस्थितेः मूल्यं प्रत्यागच्छति, 0 सम्यक् अस्ति, non-0 विफलम् अस्ति |
$$ | वर्तमानस्य शेल् स्क्रिप्ट् इत्यस्य प्रक्रियासङ्ख्या |
$! | अन्तिमपृष्ठभूमिप्रक्रियायाः PID |
$_ | अन्तिम-आदेशस्य अन्तिम-पैरामीटर् प्राप्नुवन्तु |
-n
: रेखाविरामं विना सामग्रीं निर्गन्तुं-e
: पलायनवर्णानां व्याख्यां कुरुत n
: नवपङ्क्तिःr
: प्रवेशt
:तबb
:पृष्ठस्थानम्v
: ऊर्ध्वाधर ट्याब वर्णeval ls; cd ~
exec
निष्पादनस्य अनन्तरं स्वयमेवexit
व्याकरणम्:
व्याकरणम् | परिणाम |
---|---|
# | आरम्भादेव लघुतमं मेलनं निष्कासयन्तु |
## | आरम्भादेव दीर्घतमं मेलनं निष्कासयन्तु |
% | अन्ते लघुतमं मेलनं निष्कासयन्तु |
%% | अन्ते दीर्घतमं मेलनं निष्कासयन्तु |
# | निर्दिष्टवर्णसामग्रीणां अवरोधः |
a*c | a इत्यनेन आरभ्य, मध्ये यत्किमपि वर्णं भवति, c इत्यनेन च समाप्तं तारं मेलयति |
${变量} | चर मूल्यं प्रत्यागच्छतु |
${#变量} | चरदीर्घता, वर्णदीर्घता प्रत्यागच्छतु |
${变量:start} | चर आफ्सेट् मूल्यस्य अनन्तरं वर्णं प्रत्यागच्छति |
${变量:start:length} | ऑफसेट् इत्यस्य अनन्तरं दीर्घतायाः सीमिताः वर्णाः निष्कासयन्तु |
${变量#word} | चरस्य आरम्भात् लघुतमं मेलयुक्तं शब्द उपस्ट्रिंग् विलोपयन्तु |
${变量##word} | चरस्य आरम्भात् दीर्घतमं मेलशब्दं विलोपयन्तु |
${变量%word} | चरस्य अन्ते लघुतमं मेलयुक्तं शब्दं उपस्ट्रिंग् निष्कासयन्तु |
${变量%%word} | चरस्य अन्ते दीर्घतमं मेलयुक्तं शब्द-उपस्ट्रिंग् निष्कासयन्तु |
${变量/pattern/string} | प्रथमं मेलप्रतिरूपं स्ट्रिंग् इत्यनेन प्रतिस्थापयन्तु |
${变量//pattern/string} | सर्वाणि प्रतिमानं स्ट्रिंग् इत्यनेन प्रतिस्थापयन्तु |
संचालन उदाहरणम्: सञ्चिकानाम विलोपयतु
# 通过⼦串的替换⽅式
snowk@SnowKYP# f=stu_102999_1_finished.jpg
# 变量的⼦串功能,去掉后缀
snowk@SnowKYP# echo ${f//_finished/}
stu_102999_1.jpg
# 利⽤变量的反引⽤替换⽂件名
snowk@SnowKYP# mv $f `echo ${f//_finished/}`
# 剩下的⽂件,利⽤循环操作
# 找出剩下所有需要替换的jpg⽂件
snowk@SnowKYP# ls *fin*.jpg
stu_102999_2_finished.jpg stu_102999_3_finished.jpg stu_102999_4_finished.jpg
stu_102999_5_finished.jpg
# 写shell循环代码,循环操作
# 去掉所有jpg⽂件的_finished后缀
snowk@SnowKYP# for file in `ls *fin*.jpg`;do mv $file `echo ${file//_finished/}`;done
snowk@SnowKYP# ls *.jpg
stu_102999_1.jpg stu_102999_2.jpg stu_102999_3.jpg stu_102999_4.jpg stu_102999_5.jpg
parameter,参数,范围
${parameter:-word}
:यदिparameter
चरमूल्यं रिक्तं भवति, returnword
सूत्र${parameter:=word}
:यदिparameter
चरमूल्यं रिक्तं भवति तर्हिword
एकं चरमूल्यं प्रतिस्थापयति तस्य मूल्यं च प्रत्यागच्छति${parameter:?word}
:यदिparameter
चरमूल्यं रिक्तं भवति, .word
यथाstderr
आउटपुट्, अन्यथा आउटपुट् चर मूल्यम् ${parameter:+word}
:यदिparameter
यदि चरमूल्यं रिक्तं भवति तर्हि किमपि न कुर्वन्तु अन्यथाword
निर्वतनम्# 原脚本命令,有bug,有歧义
find ${file_path} -name '*.tar.gz' -type f -mtime +7 | xargs rm -f
# 修正后的脚本命令
# 如果有bug起义,就在当前目录搜索并执行删除
find ${file_path:=/tmp} -name '*.tar.gz' -type f -mtime +7 | xargs rm -f