2013-03-09 35 views

回答

3

你定義一個變量,像這樣:

greeting=hello 
export name=luc 

,並使用這樣的:

echo $greeting $name 

如果使用export這意味着該變量將是子shell可見。編輯:如果你想分配一個字符串包含空格,你必須引用它或者使用雙引號(「)或單引號(')。雙引號內的變量將被擴展,而在單引號中,他們不會:

[email protected]:~$ name=luc 
[email protected]:~$ echo "hello $name" 
hello luc 
[email protected]:~$ echo 'hello $name' 
hello $name 
+0

問題是 - >編寫一個腳本輸出你的名字。所以如果你的名字是「喬·史密斯」。該腳本應該在屏幕上回顯「Joe Smith」。命令行回答是$ cat tut2q1.sh #!/ bin/bash #這是打印Joe Smiths名字的腳本。 echo'Joe Smith' $(我試過在putty中輸入這個命令,但是輸入$ cat blah blah之後給了我 - >符號後,我甚至無法離開.sh請幫助我 – luc 2013-03-09 09:34:21

+0

發佈您的腳本作爲你的問題的一部分,格式化會丟失,很難說出它的樣子 – Axel 2013-03-09 10:03:49

1

在外殼sctipts的情況下,當值分配給一個變量,你並不需要使用$辛博爾只有當你想存取權限該變量的值 例子:。

 VARIABLE=100000; 
    echo "$VARIABLE"; 
    othervariable=$VARIABLE+10; 
    echo $othervariable; 

另一件事:如果你使用assign在simbol之前和之後不留空格。

這裏是一個很好的bash教程: http://linuxconfig.org/Bash_scripting_Tutorial

mynameis.sh:

 #!/bin/sh 
    finger | grep "`whoami` " | tail -n 1 | awk '{FS="\t";print $2,$3;}' 

手指:打印所有登錄用戶示例結果:

login Name    Tty  Idle Login Time Office  Office Phone 
    xuser Forname Nickname tty7  3:18 Mar 9 07:23 (:0) 
    ... 

的grep:過濾器行是什麼包含給定的字符串(在這個例子中,如果我們的登錄名是xuser,我們需要過濾xuser) http://www.gnu.org/software/grep/manual/grep.html

WHOAMI:打印我的登錄名 http://linux.about.com/library/cmd/blcmdl1_whoami.htm

尾-n 1:僅示出結果 http://unixhelp.ed.ac.uk/CGI/man-cgi?tail

在AWK腳本的最後一行:打印結果的第二和第三列中:的forName,暱稱 http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawk_toc.html

+0

請編輯你的回答以使用'echo'或'printf'來避免混淆,'print'不是bash,它會打印一個文件不是它的參數 – Axel 2013-03-09 09:07:02

+0

oppa ...我錯過了它..:)更正 – Kovge 2013-03-09 09:08:25

+0

問題是 - >編寫一個輸出你的名字的腳本。所以如果你的名字是「喬·史密斯」。該腳本應該在屏幕上回顯「Joe Smith」。命令行回答是$ cat tut2q1.sh #!/ bin/bash #這是打印Joe Smiths名字的腳本。 echo'Joe Smith' $(我試過在膩子中輸入這個命令,但輸入$ cat blah blah後,這給了我 - >符號事後,我甚至不能離開.sh請幫助我 – luc 2013-03-09 09:27:38