linux 中如何執(zhí)行腳本?
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!成都創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計制作,服務(wù)好的網(wǎng)站設(shè)計公司,成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計負責(zé)任的成都網(wǎng)站制作公司!
步驟如下:有三種方法:
1. ./file.sh:開啟bash子進程來執(zhí)行,就是開啟額外的進程來進行,不影響原進程的配置等
2. bash file.sh特點和/file.sh的特點相同。。
3. source file.sh 或者 . file.sh 特點:在原bash進程中執(zhí)行腳本。source 和 . 命令是一樣的。你可以搜索 source補充,如何查看腳本運行是否開啟了bash子進程vim file.sh寫入#!/bin/bash;#echo $$命令會輸出bash進程。bash file.sh 屏幕輸出3984;source file.sh ?屏幕輸出4176 和 你直接在shell中輸出的一樣,說明在同一個bash的進程中。
根據(jù)具體問題類型,進行步驟拆解/原因原理分析/內(nèi)容拓展等。
具體步驟如下:/導(dǎo)致這種情況的原因主要是……
Linux運行sql腳本的具體操作步驟如下:
1、使用shell工具登陸到安裝postgresql的服務(wù)器,切換到postgres用戶,postgresql默認的操作用戶,命令是:su - postgres,查看當(dāng)前路徑是/var/lib/psql,創(chuàng)建一個test.sql腳本文件,命令是:vim test.sql。
2、sql腳本內(nèi)容是:create table test (id int not null primary key,name text);insert into test valus(1, 't1');
3、執(zhí)行test.sql腳本,命令是:psql -f test.sql
這里是因為postgresql安裝本機上,在第一步中我們切換到了postgres用戶,因此這里默認就是postgres用戶來操作,不用帶上用戶名和密碼。執(zhí)行結(jié)果如下,可以看到有兩個提示:
create table
insert 0 1
執(zhí)行完成后,我們登入數(shù)據(jù)庫,命令是:psql
4、進入psql交互式命令行后,我們執(zhí)行兩個查看命令:\d
可以看到表test確實已經(jīng)創(chuàng)建成功,然后執(zhí)行命令:\d test
可以看到表中字段是id和name,和我們創(chuàng)建語句中內(nèi)容一樣,說明第一條語句執(zhí)行成功。
5、查看表中數(shù)據(jù),命令是:select * from test;
顯示出來的值是1,t1,說明第二條執(zhí)行語句也執(zhí)行成功,說明test.sql腳本執(zhí)行成功。
6、默認是postgres用戶,本機操作是,不需要用戶和密碼,現(xiàn)在我們來試試操作遠程linux服務(wù)器上的postgresql,也就是說執(zhí)行本地的腳本文件,在遠程服務(wù)器上創(chuàng)建表。如下面圖中所示,命令是:psql -U test1 -h 192.168.1.194 -f test.sql,輸入對應(yīng)用戶的密碼。
7、登陸到這個遠程服務(wù)器上,命令是:psql -U test -h 192.168.194
執(zhí)行查看命令:\d,\d test
最后查詢數(shù)據(jù)庫:select * from test;結(jié)果和上面都一致。
在Linux下,如果你需要執(zhí)行shell腳本,那么應(yīng)該使用那個命令呢?下面由我為大家整理了linux shell腳本執(zhí)行命令的相關(guān)知識,希望對大家有幫助!
linux shell腳本執(zhí)行
linux shell腳本執(zhí)行方法一: 切換到shell腳本所在的目錄(此時,稱為工作目錄)執(zhí)行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當(dāng)前的工作目錄下執(zhí)行hello.sh。如果不加上./,bash可能會響應(yīng)找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執(zhí)行程序默認的搜索路徑之列,也就是說,不在環(huán)境變量PASH的內(nèi)容之中。查看PATH的內(nèi)容可用 echo $PASH 命令?,F(xiàn)在的/data/shell就不在環(huán)境變量PASH中的,所以必須加上./才可執(zhí)行。
linux shell腳本執(zhí)行方法二: 以絕對路徑的方式去執(zhí)行bash shell腳本:
/data/shell/hello.sh
linux shell腳本執(zhí)行方法三: 直接使用bash 或sh 來執(zhí)行bash shell腳本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執(zhí)行,那么,可以不必事先設(shè)定shell的執(zhí)行權(quán)限,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數(shù)傳給sh(bash)命令來執(zhí)行的。這時不是hello.sh自己來執(zhí)行,而是被人家調(diào)用執(zhí)行,所以不要執(zhí)行權(quán)限。那么不用指定bash路徑自然也好理解了啊。
linux shell腳本執(zhí)行方法四: 在當(dāng)前的shell環(huán)境中執(zhí)行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執(zhí)行shell腳本時都是在當(dāng)前shell(稱為父shell)開啟一個子shell環(huán)境,此shell腳本就在這個子shell環(huán)境中執(zhí)行。shell腳本執(zhí)行完后子shell環(huán)境隨即關(guān)閉,然后又回到父shell中。而方法四則是在當(dāng)前shell中執(zhí)行的。
1.
如果是開機馬上執(zhí)行的腳本,可以將腳本寫到rc.local中;
2.
如果是用戶登錄后自動執(zhí)行腳本,可以將腳本寫到相應(yīng)的用戶目錄下“~/.bash_profile”,若腳本“~/.bash_profile”不存在,可以直接拷貝“/etc/profile”命名為“~/.bash_profile”;
3.
如果是要任一用戶登錄后自動執(zhí)行腳本,可以將腳本寫到“/etc/profile”中。