linux腳本中
執行「nano function.sh」命令,創建新的shell腳本文件,名字為「function.sh」。
編輯新創建的shell腳本文件「function.sh"。函數必須先定義後使用。
shell腳本的內容如下:
#!/bin/bash
add(){
sum_1=$1;
sum_2=$2;
sum=`expr $sum_1 + $sum_2`;
echo "the sum is ${sum}";
}
add $1 $2
4
給新創建的function.sh賦可執行許可權,命令為「chmod 755 function.sh」。
5
使用「./function.sh 1 2」調用腳本,並給腳本傳遞兩個數字。
6
執行命令的結果為「the sum is 3」。
B. 請教shell腳本中的&是什麼意思
& 後台工作
單一個& 符號,且放在完整指令列的最後端,即表示將該指令列放入後台中工作。
tar cvfz data.tar.gz data > /dev/null &
C. linux 中怎樣執行腳本
首先腳本需要有執行許可權
chmo+xfile.sh
執行腳本有三種方法:
1../file.sh
特點:開啟bash子進程來執行,也就是開啟額外的進程來進行,不影響原進程的變數、配置等
2.bashfile.sh
特點:和./file.sh相同
3.sourcefile.sh或者.file.sh
特點:在原bash進程中執行腳本。
第三種方法主要用於在腳本中切換用戶su、切換目錄cd等命令。
source和.命令是相同的。
你可以搜索source
補充,如何查看腳本運行是否開啟了bash子進程
vim file.sh
寫入
#!/bin/bash
#echo $$命令會輸出bash進程ID
echo $$
保存並賦予可執行許可權chmod u+x file.sh
在你的shell中輸入,echo $$ 屏幕輸出4176
./file.sh 屏幕輸出3600
bash file.sh 屏幕輸出3984
source file.sh 屏幕輸出4176 和 你直接在shell中輸出的一樣,說明是在同一個bash進程
D. linux腳本里的#! 是什麼意思
家目錄/用戶目錄。比如:我的用戶名是user,那一般我的家目錄就是/home/user/,裡面是我的文件和設置。#就是指的這個目錄,你可以試試,在終端或者終端模擬器裡面輸入cd #,就可以直接到達你的用戶目錄。
E. shell腳本里賦值運算符 =,:=,+=,=的區別
'='就是賦值運算
':='就是當冒號前面的變數不存在或值為空時,就把等號後的值賦值給變數
'+='這個應該不用解釋吧,和C中一樣,變數等於本身和另一個變數的和
'?='沒見過,不知道LZ說的是不是'?',它的意思是在語句a?b中如果a未定義則用b替換a
F. shell腳本中經常看到這樣的命令; :<< :> 很疑惑這是什麼意思呢網上一直也沒有搜到,求指教!
冒號在shell中表示空指令。
原文如下:
:
null command [colon]. This is the shell equivalent of a "NOP" (no op, a do-nothing operation). It
may be considered a synonym for the shell builtin true. The ":" command is itself a Bash builtin, and its exit status is true (0).
所以:
: > file 用於清空文件
下面這種形式是Here Document的一種用法,用於注釋一段代碼塊
:<<BLOCK
...
segment
...
BLOCK
G. linux shell中 ~ 符號代表什麼
Bash的符號,還是所有符合Posix標準的系統里命令解釋器里來代替用戶家目錄的符號。
shell命令中
代表用戶的家目錄
使用cd~或者cd可以轉到這個目錄
在bash shell awk命令中,~代表匹配正則表達式,例:awk『$0~/.*/{print}』test.txt
(7)linux腳本中擴展閱讀:
實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。不僅如此,Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。
H. shell 腳本里$什麼意思
Linux shell 腳本中, $@ 和$# 分別是:
$@:表示所有腳本參數的內容
$#:表示返回所有腳本參數的個數。
示例:編寫如下shell腳本,保存為test.sh
#!/bin/sh
echo "number:$#"
echo "argume:$@"
執行腳本:
./test.sh first_argsecond_arg
概念:
Shell就是一個命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋並傳給系統。它為用戶提供了一個向Linux發送請求以便運行程序的介面系統級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。 Shell本身是一個用C語言編寫的程序,它是用戶使用Linux的橋梁。
以上內容參考:網路-Shell腳本
I. linux shell 中&>是什麼意思
& 後台執行
> 輸出到
不過聯合使用也有其他意思,比如nohup輸出重定向上的應用
例子:nohup abc.sh > nohup.log 2>&1 &
其中2>&1 指將STDERR重定向到前面標准輸出定向到的同名文件中,即&1就是nohup.log
J. shell腳本里「$」什麼意思
Linux shell 腳本中, $@ 和$# 分別是:
$@:表示所有腳本參數的內容
$#:表示返回所有腳本參數的個數。
示例:編寫如下shell腳本,保存為test.sh
#!/bin/sh
echo "number:$#"
echo "argume:$@"
執行腳本:
./test.sh first_argsecond_arg
說明:給腳本提供了兩個參數,所以$#輸出的結果是2,$@代表了參數的內容!