精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IC設(shè)計(jì)中Linux shell的選擇和使用

sanyue7758 ? 來(lái)源:ExASIC ? 2023-10-31 11:27 ? 次閱讀

你很可能正在使用bash,也可能是csh。你可能聽說(shuō)過(guò)sh、tcsh。如果你安裝過(guò)EDA,就知道某EDA要正常工作必須要裝ksh。另外你可能還聽某大神安利過(guò)zsh……

一圖看懂各種shell的聯(lián)系與區(qū)別

那這么多shell有什么聯(lián)系和區(qū)別,我們先來(lái)看看它們的歷史和關(guān)系。下圖基于維基百科資料整理:

59b34df6-779c-11ee-939d-92fbcf53809c.jpg

ICer該如何選擇shell

那么這么多shell,我們ICer該如何選擇呢?看以下幾條信息

在現(xiàn)代化的操作系統(tǒng)中,比如Solaris11、RHEL7、Mac OS X默認(rèn)都是bash。

IC企業(yè)里用tcsh的居多,因?yàn)榇蠹以榷荚赟olaris里干活,老版本的Solaris默認(rèn)是csh。

在RHEL6、7里,sh軟鏈接指向bash,csh軟鏈接指向tcsh。

zsh很流行,顏色很好看,自動(dòng)化功能很強(qiáng)大,特別是Oh My Zsh的擴(kuò)展使用zsh成為了終極shell。可惜的是,很多芯片設(shè)計(jì)公司服務(wù)器沒有安裝,周圍也沒有同事用。

EDA安裝目錄里有ksh腳本,說(shuō)明有一些IC企業(yè)在用ksh,但國(guó)內(nèi)用的人極少。

基于以上的分析,對(duì)于普通ICer,我們的結(jié)論是:

如果你是普通搬磚的ICer,有啥用啥,周圍同事用啥你也用啥。所以bash和tcsh都得學(xué)。

如果你是公司的領(lǐng)導(dǎo)(Leader、經(jīng)理、中層管理等),你讓手下用啥,手下就用啥。需要考慮生產(chǎn)力,傳統(tǒng),學(xué)習(xí)培訓(xùn)成本。

在家,你愛用啥用啥,看著舒服,用著順手就行。

另外,由于Tcl、Perl、Python等腳本語(yǔ)言的強(qiáng)大,我們只需要了解和掌握shell的常見、簡(jiǎn)單用法即可。把復(fù)雜的編程交給Tcl/Perl/Python去做吧。

shell簡(jiǎn)易教程

注釋

1#thisiscomment

用戶配置文件

1#bash
2~/.bashrc
3
4#tcsh
5~/.tcshrc或~/.cshrc
6
7#zsh
8~/.zshrc

腳本第一行指定解釋器

1#!/bin/bash
2#!/bin/tcsh
3#!/bin/zsh

變量定義,賦值,引用

 1#bash
 2CompanyInfo="AIChips,Co.LTD"
 3EDA_HOME=/tools/eda
 4echo$EDA_HOME
 5my_array=(1234)
 6echo${my_array[0]}#outputis1
 7my_hash['first']=1
 8my_hash[second]=2
 9echo${my_hash[first]}
10
11#tcsh
12CompanyInfo="AIChips,Co.LTD"
13setEDA_HOME=/tools/eda
14echo$EDA_HOME
15setmy_array=(1234)
16echo$my_array[1]#outputis1
17
18#zsh
19CompanyInfo="AIChips,Co.LTD"
20EDA_HOME=/tools/eda
21echo$EDA_HOME
22my_array=(1234)
23echo$my_array[1]#outputis1
24decare-Amy_hash
25my_hash['first']=1
26my_hash[second]=2
27echo$my_hash[first]

Tips:

#1 bash數(shù)組下標(biāo)從0開始,tcsh和zsh從1開始。

#2 bash引用關(guān)聯(lián)數(shù)組用${my_hash[first]},tcsh和zsh不需要{},直接$my_hash[first]。

環(huán)境變量

1#bash,zsh
2exportNOVAS_HOME=/tools/eda/synopsys/novas
3或者
4NOVAS_HOME=/tools/eda/synopsys/novas
5exportNOVAS_HOME
6
7#tcsh
8setenvNOVAS_HOME/tools/eda/synopsys/novas

Tips:

#1 tcsh的path數(shù)組只對(duì)當(dāng)前shell有效。但如果寫在用戶配置文件~/.tcshrc里,path也是對(duì)所有shell有效的。

條件

 1#bash,zsh
 2foo="a"
 3if[$foo="a"];then
 4echo"equal"
 5fi
 6
 7#csh
 8setfoo="a"
 9if($foo=="a")then
10echo"equal"
11endif

Tips:

#1 考慮兼容性,bash、zsh中的字符串比較用=,而tcsh里用==

#2 bash、zsh的[ ]內(nèi)部必須有空格

循環(huán)

 1#bash
 2arr=("a""b""c")
 3for((i=0;i<${#arr[*]};?i++))
 4do?
 5??echo?${arr[$i]}
 6done
 7
 8#tcsh
 9set?arr?=?(a?b?c)
10foreach?i?($arr)
11??echo?$i
12end
13
14#zsh
15arr=("a"?"b"?"c")
16echo?$arr
17for?((i=1;?i?<=?$#arr;?i++))?{
18??echo?$arr[$i]
19}
20for?i?($arr)?{
21??echo?$i
22}

Tips:

#1 數(shù)組長(zhǎng)度的表示方式不同,bash里用${#arr[*]}或者${#arr[@]},tcsh和zsh用$#arr

#2 bash用for var in {0..9},tcsh用foreach var ($array),zsh用for var ($array)

函數(shù)

1#bash,zsh
2functionsum(){
3return$(($1+$2))
4}
5sum12
6echo"sum=$?"

Tips:

#1 函數(shù)必須先定義后使用

#2 函數(shù)傳入參數(shù)時(shí),在函數(shù)內(nèi)部用$1, $2, $3等取得

#3 return的返回值保存在內(nèi)置變量$?里

#4 函數(shù)調(diào)用時(shí),參數(shù)直接寫在函數(shù)名后面,與linux命令的格式相同

#5 tcsh不支持函數(shù)的語(yǔ)法,可以用alias實(shí)現(xiàn)類似函數(shù)的功能

下面是tcsh里用alias實(shí)現(xiàn)類似求和函數(shù)sum的例子。alias只是起到簡(jiǎn)化代碼的作用,相當(dāng)于宏定義。

1#tcsh
2aliassum'@sum=$a+$b';echo$sum
3seta=1
4setb=2
5sum#outputis3
6setb=10
7sum#outputis11






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    37

    文章

    1287

    瀏覽量

    103445
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11125

    瀏覽量

    207934
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    359

    瀏覽量

    23194
  • Bash
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    10136

原文標(biāo)題:IC設(shè)計(jì)中Linux shell的選擇和使用(bash、tcsh、zsh)

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?578次閱讀

    Linux shell腳本分享

    今天浩道跟大家分享幾個(gè)Linux運(yùn)維中常用到的shell腳本!
    發(fā)表于 07-18 09:53 ?524次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>shell</b>腳本分享

    Linux Shell系列教程之Shell簡(jiǎn)介和類型

    編寫的,Linux占用系統(tǒng)資源最少的一個(gè)小shell,它只包含24個(gè)內(nèi)部命令,因而使用起來(lái)很不方便。cshcsh 是Linux比較大的內(nèi)核,它由以William Joy為代表的共計(jì)4
    發(fā)表于 08-28 13:56

    shell是什么?shell的變量有哪些

    shell是什么?Linux提供的Shell解析器有哪幾種?shell的變量有哪些?
    發(fā)表于 09-30 08:23

    linux shell命令/unix shell命令教程

    linux shell命令/unix shell命令教程:為了防止未授權(quán)用戶訪問(wèn)你的文件,可以在文件和目錄上設(shè)置權(quán)限位。還可以設(shè)定文件在創(chuàng)建時(shí)所具有的缺省權(quán)限:這些只是整個(gè)系統(tǒng)安全問(wèn)題中
    發(fā)表于 12-06 13:08 ?61次下載
    <b class='flag-5'>linux</b> <b class='flag-5'>shell</b>命令/unix <b class='flag-5'>shell</b>命令教程

    米爾科技Linux Shell編程介紹

    Shell是用戶與內(nèi)核進(jìn)行交互操作的一種接口,是Linux最重要的軟件之一。
    的頭像 發(fā)表于 11-25 08:58 ?1563次閱讀
    米爾科技<b class='flag-5'>Linux</b> <b class='flag-5'>Shell</b>編程介紹

    Linuxshell腳本執(zhí)的4種方式

    Linuxshell腳本的執(zhí)行通常有4種方式,分別為工作目錄執(zhí)行,絕對(duì)路徑執(zhí)行,sh執(zhí)行,shell環(huán)境執(zhí)行。
    發(fā)表于 05-23 09:28 ?871次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>shell</b>腳本執(zhí)的4種方式

    Linux系統(tǒng)命令及shell腳本實(shí)踐指南

    Linux系統(tǒng)命令及shell腳本實(shí)踐指南資料下載。
    發(fā)表于 06-01 14:47 ?28次下載

    Linux開發(fā)_Shell腳本編程語(yǔ)言

    介紹LinuxShell編程,介紹shell里語(yǔ)句、變量、函數(shù)、運(yùn)算符的使用。
    的頭像 發(fā)表于 09-17 15:39 ?1081次閱讀

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    Linux基礎(chǔ)知識(shí)Shell

    Shell便是Linux命令行環(huán)境CLI,直觀意思是“外殼”,這一點(diǎn)與Linux內(nèi)核對(duì)應(yīng)。
    的頭像 發(fā)表于 02-15 10:54 ?736次閱讀

    剖析Linux shell 函數(shù)實(shí)現(xiàn)

    作為一個(gè)嵌入式 Linux 工程師,肯定需要編寫 shell 腳本進(jìn)行一些自動(dòng)化工作。剛好,我最近就有類似需求——一鍵交叉編譯 DDS。本著“編寫漂亮代碼的原則”,我用到了 **shell 函數(shù)** 。
    的頭像 發(fā)表于 05-12 10:27 ?432次閱讀
    剖析<b class='flag-5'>Linux</b> <b class='flag-5'>shell</b> 函數(shù)實(shí)現(xiàn)

    shell命令和linux命令一樣嗎

    結(jié)合在一起,形成一個(gè)相當(dāng)于面向過(guò)程的程序,即shell script,從而實(shí)現(xiàn)一些復(fù)雜的功能。 而Linux命令則是用來(lái)對(duì)Linux系統(tǒng)進(jìn)行管理的命令。這些命令通常是由系統(tǒng)管理員或用戶輸入的,用于執(zhí)行特定的操作或任務(wù)。
    的頭像 發(fā)表于 11-08 10:51 ?2457次閱讀

    linux命令和shell編程有什么聯(lián)系

    的命令,并提供了許多功能和特性,如變量、控制結(jié)構(gòu)、函數(shù)等,這些功能和特性使得Shell編程成為可能。 其次,Linux命令是Shell編程的重要組成部分。通過(guò)使用Linux命令,用戶可
    的頭像 發(fā)表于 11-08 10:53 ?774次閱讀

    linux命令行與shell編程實(shí)戰(zhàn)

    Linux命令行與Shell編程實(shí)戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux命令行的基本操作,如文件管理、進(jìn)程管理、網(wǎng)絡(luò)配置等。熟悉使用命令行能夠提高工作效率,提升自己
    的頭像 發(fā)表于 11-08 10:57 ?628次閱讀