shell的執行以及變數

2021-09-28 02:20:53 字數 2014 閱讀 6995

自定義變數

特殊變數

[root@note01 ~]# cat /etc/shells 

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

對於bash 與sh 的關係

[root@note01 bin]# ll | grep bash

-rwxr-xr-x. 1 root root 904872 oct 16 2014 bash

lrwxrwxrwx. 1 root root 4 oct 29 2018 sh -> bash

centos預設的解析器是bash

[root@note01 bin]# echo $shell

/bin/bash

指令碼的開頭以#!/bin/bash開頭,對於一些指令碼使用sh或者bash + 指令碼的絕對路徑,使用這種方式不用賦予指令碼+x的許可權

直接採用指令碼的絕對路徑方式需要對指令碼賦予+x的許可權

常用系統變數

$home

[root@note01 bin]# echo $home

/root

$pwd

[root@note01 bin]# echo $pwd

/bin

$shell

[root@note01 bin]# echo $shell

/bin/bash

$user

[root@note01 bin]# echo $user

root

顯示shell中所有的變數

[root@note01 bin]# set
1.基本語法

(1)定義變數:變數=值

(2)撤銷變數:unset 變數

(3)宣告靜態變數:readonly變數,注意:不能unset

2.變數定義規則

​ (1)變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,環境變數名建議大寫。

(2)等號兩側不能有空格

​ (3)在bash中,變數預設型別都是字串型別,無法直接進行數值運算。

​ (4)變數的值如果有空格,需要使用雙引號或單引號括起來。

$n​ $n (功能描述:n為數字,$0代表該指令碼名稱,$1-9代表

第一到第

九個引數

,十以上

的引數,

十以上的

引數需要

用大括號

包含,如

9代表第一到第九個引數,十以上的引數,十以上的引數需要用大括號包含,如

9代表第一到

第九個參

數,十以

上的引數

,十以上

的引數需

要用大括

號包含,

如)$#​ $# (功能描述:獲取所有輸入引數個數,常用於迴圈)。

∗ 、*、

∗、@​ ∗(功

能描述:

這個變數

代表命令

行中所有

的引數,

* (功能描述:這個變數代表命令列中所有的引數,

∗(功能描述

:這個變

量代表命

令行中所

有的引數

,*把所有的引數看成乙個整體)

​ @ (功

能描述:

這個變數

也代表命

令行中所

有的引數

,不

過@ (功能描述:這個變數也代表命令列中所有的引數,不過

@(功能描述

:這個變

量也代表

命令列中

所有的參

數,不過

@把每個引數區分對待)

$?

shell變數以及如何使用變數

shell變數 變數 記憶體空間 增加指令碼的靈活性,適用性 型別 自定義變數 環境變數 path 特殊變數 自定義變數 1 宣告變數 變數名稱 變數值 變數名稱規範 只能由數字 字母 下劃線組成 不能以數字開頭 root shell name tom 2 呼叫變數的值 變數名稱 變數名稱後緊跟數字...

shell變數賦值以及使用

1 變數賦值 定義變數時,變數名不加美元符號,如 name str lili 特別注意 變數名和等號之間不能有空格 其他注意事項與其他語言相通 2 使用變數 使用乙個定義過的變數,只有在變數名前面加美元符號 即可 name str lili echo name str echo 注 變數名外面的花括...

shell 變數做命令執行

user ubuntu cmd ls echo 1 a.txt 1user ubuntu cmd bin ls echo 1 user ubuntu cmd ls cannot access no such file or directory ls cannot access echo no suc...