當前位置:首頁 » 編程軟體 » 一鍵獲取shell腳本

一鍵獲取shell腳本

發布時間: 2023-06-05 12:30:45

1. shell腳本,獲取目錄的結構,保存到文件

使用遞歸的shell腳本沒有find效率高。find 是為目錄搜索而優化過的程序。

#!/bin/bash
DIR="$1"
if [ -z "$2"] ;then
echo "must set 2st argument for output file ." >& 2
exit 1
fi
OUT="$2"
DIR=$(readlink -m "$DIR")
#轉換成絕對路徑
find "$DIR" -type "d" >"$OUT"
#搜索目錄保存到輸出文件。

2. linux腳本如何一鍵授權並執行

在當前路徑下輸入r chmod 777 腳本名r 給腳本授權,r 然後就可以執行腳本r ./腳本名 r r 777 是最高許可權,有讀、寫、執行許可權;和屬組用戶和其他用戶的讀、寫、執行許可權。r 其他許可權分別是r -rw------- (600) -- 只有讀寫許可權。r -rw-r--r-- (644) -- 只有有讀寫許可權;而屬組用戶和其他用戶只有讀許可權。r -rwx------ (700) -- 只有有讀、寫、執行許可權。r -rwxr-xr-x (755) -- 有讀、寫、執行許可權;而屬組用戶和其他用戶只有讀、執行許可權。r -rwx--x--x (711) -- 有讀、寫、執行許可權;而屬組用戶和其他用戶只有執行許可權。
Linux中執行shell腳本的4種方法總結,即在Linux中運行shell腳本的4種方法:
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本
方法二:以絕對路徑的方式去執行bash shell腳本
方法三:直接使用bash 或sh 來執行bash shell腳本
方法四:在當前的shell環境中執行bash shell腳本

3. shell腳本獲取參數&在線執行shell腳本

本文介紹以下升攜伏2個知識點,為後後續在工作過程中安裝一吵攜鍵安裝腳本打好基礎:

如下shell腳本中傳入的參隱鏈數依次值如下:

如腳本 getopts.sh

執行 ./getopts.sh -a dd -b ,列印如下結果

如腳本 for.sh

有時候shell腳本可以放在http頁面上,不用download,可以直接執行。

https://www.cnblogs.com/klb561/p/8933992.html
https://www.cnblogs.com/faberbeta/archive/2004/01/13/13559686.html

4. 如何從shell腳本獲取一個結果

將一條命令的執行結果取得命令執行結果的值有:

1、使用反引號`` (數字鍵1左邊的鍵,tab鍵上面,英文方式輸入)如:a=`echo "hello world"`;即將命令 echo "hello world"的輸出賦給變數a

2、可以使用 $(()),如:a=$(echo "hello world"),即將命令echo "hello world"的輸出賦給變數a。

5. 如何獲取傳入給shell腳本的最後一個參數

執行「nano test.sh」創建一個新的shell腳本。

腳本test.sh的內容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"

給新創建的test.sh的腳本賦可執行許可權,命令為「chmod 755 test.sh」。

執行'./test.sh "xiao wang"'命令,可以看到自己編寫腳本的結果「the xiao wang are great man!」。

5
"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱,[$1/$2/...]從1開始為傳遞的參數。
6
linux系統除了提供位置參數還提供內置參數,內置參數如下:
$# ----傳遞給程序的總的參數數目
$? ----上一個代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程序的所有參數組成的字元串。
$n ----表示第幾個參數,$1 表示第一個參數,$2 表示第二個參數 ... $0 ----當前程序的名稱
$@----以"參數1" "參數2" ... 形式保存所有參數
$$ ----本程序的(進程ID號)PID
$! ----上一個命令的PID

6. 達夢資料庫shell腳本怎麼獲取查詢語句結果集

方式一

當然是windows電腦安裝達夢管理工具,直接把腳本貼進去執行,但避免不了出現誤操作

在這里插入圖片描述

方式二

使用shell腳本執行sql

1. 先找到達夢資料庫安裝位置吧

[root@localhost ~]# ss -nlp |grep 5236
tcp LISTEN 0 128 [::]:5236 [::]:* users:(("dmserver",pid=103380,fd=4))
[root@localhost ~]# ps -ef|grep dmserver
root 85093 66993 0 17:56 pts/6 00:00:00 grep --color=auto dmserver
dmdba 103380 1 8 13:36 ? 00:23:18 /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG_JW/dm.ini -noconsole
1
2
3
4
5
1
2
3
4
5
2. 直接在linux上執行shell命令執行sql腳本

2.1 # disql username/password:port

使用這個命令可以進入sql控制台

[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236

伺服器[LOCALHOST:5236]:處於普通打開狀態
登錄使用時間 : 5.524(ms)
disql V8
SQL>
進入SQL>後:
直接輸入sql語句,使用英文分號結尾,回車執行。
使用「`sql文件路徑」,可以執行sql腳本文件,注意前面有一個小撇(esc和tab中間的鍵)
使用「start sql文件路徑」,可以執行sql腳本文件。
2.2 # disql username/password:port `sql文件位置

使用這個命令可以執行sql腳本

[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236 \`sql/test.sql
[root@localhost sql]#
1
2
1
2
但需注意
這個腳本執行完sql會停留在sql執行行,如需執行完返回到shell命令行,則需要在sql文件結尾添加:exit; 。
這個shell語句不能用start執行sql文件,只能使用「`」,並且前面需要添加轉義字元「\」。
2.3 達夢sql腳本注意事項

目前發現-創建schema語句以及執行過程結尾,都需要添加「/」結束

例如執行以下語句,回車執行,一直在輸出數字,直到輸入「/」,再回車執行,才執行成功。

[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236

伺服器[LOCALHOST:5236]:處於普通打開狀態
登錄使用時間 : 6.121(ms)
disql V8
SQL> create schema test;
2
3 /
操作已執行
已用時間: 26.698(毫秒). 執行號:700604.
SQL>
sql腳本示例:

-- 創建schema
CREATE SCHEMA DB_ZFBA_MOBILE;
/
-- 執行過程
begin
if exists(select 1 from DBA_TAB_COLUMNS where OWNER='DB_ZFBA_MOBILE' AND TABLE_NAME='T_ZJTQD') then
EXECUTE immediate 'drop table DB_ZFBA_MOBILE.T_ZJTQD';
end if;
end;
/
create table DB_ZFBA_MOBILE.T_ZJTQD
(
"C_BH" char(32) NOT NULL, -- 主鍵
"C_BH_AJ" varchar2(32) NULL, -- 案件編號
……
"DT_ZHXGSJ" datetime NULL, -- 最後修改時間
constraint PK_T_ZJTQD primary key( C_BH )
);
sql文件結尾添加exit;,保證多個sql文件執行不會中斷

3. 編寫shell腳本

注意:shell腳本一定在linux中編寫,windows編寫的有些語句執行不成功(目前原因未知)
例如: a=a b=b c=$a$b echo $c 在windows下編寫,linux中執行完會輸出b
#!/bin/bash

# 請先配置資料庫連接信息,再執行此腳本
DM_PATH=/home/dmdba/dmdbms #達夢資料庫的安裝位置
USERNAME=cpuser #達夢資料庫連接用戶名
PASSWORD=cpuser123 #達夢資料庫連接密碼
PORT=5236 #達夢資料庫連接埠號

# 下面的信息請不要隨意修改
CONNECT_INFO=$USERNAME/$PASSWORD:$PORT
echo "連接信息:"$CONNECT_INFO
# STEP 1
echo "【開始執行】---- sql/02_創建資料庫對象/00.CS_GSYS.sql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_創建資料庫對象/00.CS_GSYS.sql >> DB_DM.log
echo "【執行完成】---- sql/02_創建資料庫對象/00.CS_GSYS.sql"

# STEP 2
echo "【開始執行】---- sql/02_創建資料庫對象/01.CT_GSYS.sql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_創建資料庫對象/01.CT_GSYS.sql >> DB_DM.log
echo "【執行完成】---- sql/02_創建資料庫對象/01.CT_GSYS.sql"

# STEP 3
echo "【開始執行】---- sql/02_創建資料庫對象/02.CC_GSYS.sql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_創建資料庫對象/02.CC_GSYS.sql >> DB_DM.log
echo "【執行完成】---- sql/02_創建資料庫對象/02.CC_GSYS.sql"

# STEP 4
echo "【開始執行】---- sql/02_創建資料庫對象/03.CI_GSYS.sql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_創建資料庫對象/03.CI_GSYS.sql >> DB_DM.log
echo "【執行完成】---- sql/02_創建資料庫對象/03.CI_GSYS.sql"

# STEP 5
echo "【開始執行】---- sql/03_初始化數據/02.I_T_Aty_CodeType_GSYS.sql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/03_初始化數據/02.I_T_Aty_CodeType_GSYS.sql >> DB_DM.log
echo "【執行完成】---- sql/03_初始化數據/02.I_T_Aty_CodeType_GSYS.sql"

# STEP 6
echo "【開始執行】---- sql/03_初始化數據/02.I_T_Aty_Code_GSYS.sql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/03_初始化數據/02.I_T_Aty_Code_GSYS.sql >> DB_DM.log
echo "【執行完成】---- sql/03_初始化數據/02.I_T_Aty_Code_GSYS.sql"

# Complete
echo "【SQL全部執行完成】---- 日誌請查看DB_DM.log"
執行完成後,通過shell控制台和DB_DM.log日誌可以分析sql腳本是否執行成功。

熱點內容
整個伺服器搭建教程 發布:2025-02-12 11:48:16 瀏覽:579
我的世界伺服器人多的 發布:2025-02-12 11:48:12 瀏覽:347
為實現分頁存儲管理需要哪些硬體支持 發布:2025-02-12 11:46:34 瀏覽:539
編程下載線 發布:2025-02-12 11:41:48 瀏覽:210
json存儲數據 發布:2025-02-12 11:41:39 瀏覽:219
天龍八部腳本免費 發布:2025-02-12 11:30:12 瀏覽:501
卡羅拉的配置一般買哪個好一點 發布:2025-02-12 11:20:03 瀏覽:743
沒有伺服器的IP怎麼連上 發布:2025-02-12 11:19:55 瀏覽:80
編程sqs 發布:2025-02-12 11:09:55 瀏覽:239
electron脫離編譯環境 發布:2025-02-12 11:08:21 瀏覽:69