#定義變量:變量名=變量值, 可以使用"常量/其他變量/命令執行結果"賦值
var1='test var'
var2="test variable $var1"
var3=`date`
#單引號中將$就當作$, 不識別$為特殊符號,不能引用起他變量
echo 'the price is $100'
#雙引號中可以通過$來引用變量,但無法解析轉義符號,要解析轉義符和字體格式需要在echo命令前加-e 參數
echo "test /n test"
echo -e "test /n test"
#`` 反引號可以運行完其中的腳本命令然後賦值給相應的變量,如下執行結果會打印出123.sql的結果和當前日期
str=`cat 123.sql`
strdate=`date`
echo "$str $date`
#使用變量:$變量名
echo "$var $var1"
#變量後直接連接字符串需要用{}隔開使得變量可識別
echo "測試變量${var}test"
# 清除變量
unset var1
新建根據參數執行數據庫命令腳本
#!/bin/bash
#mysql.sh
conn="/usr/local/mysql/bin/mysql -uroot -p123"
case $1 in
select)
sql="select * from test.user"
;;
delete)
sql="delete from test.user where id =$2"
;;
insert)
sql="insert into test.user(uname,psd) values('$2','$3')"
;;
update)
sql="update test.user set uname='$3', psd='$4' where id='$2'
;;
esac
$conn -e "$sql"
運行腳本,以空格為分隔符輸入不同個數的參數
#顯示test數據庫下user表的所有數據
./mysql.sh select
#刪除指定id的用戶
./mysql.sh delete 4
#插入新用戶
./mysql.sh insert newuser newpsd
#更新id=2用戶屬性
./mysqlsh update 2 newuser2 newpsd2
Shell腳本支持四種形式的預定義變量:
!/bin/bash #test pre-defined bash variable echo "當前腳本的位置參數有${#}個" echo "當前正在執行的腳本名稱是: $0" if[ [ $? == 0 ] ];then echo "上條命令執行成功" else echo "上條命令執行失敗" fi for i in $*; do echo "位置變量為 $i" done
Shell是腳本語言,變量沒有區分類型,程序在實際運行的時候根據上下文做類型判斷,默認的類型是String,如果需要把變量看作Int類型來進行加減乘除運算,需要采用特殊語法。
Shell常用運算符