shell中使用EOF賦值變數

2021-08-26 02:11:31 字數 602 閱讀 1329

看事容易做事難,事非經過不知難。
平時看部落格的時候以為」eof」這就是可以多行輸入,確實是這樣!

因 sql 語句都較長,且有換行,直接放命令列執行出錯,於是想到用eof,先把sql語句寫好賦值給乙個變數,然後通過變數引用。

想法很好,做的時候卻遇到問題了,怎麼也無法把這個sql語句賦值到變數上,折騰了好久也沒搞懂為什麼,於是放棄了,雖然用其他方法也完成了需求,但這個簡單的問題卻一直擾著我,百思不得其解。

直到第二個星期,還是想試試為什麼用不了,試了好一會,也是無解,最後想放棄了,不知道為啥,就在最後偶然一試,卻成功了!

於是記下這個簡單的用法:

#!/bin/bash

sql=$(cat<1. 2. 3

hello

world

eof //4

) //5

echo

$sql

說明:1. 注意這個括號

2. cat後面使用 <3. 若接檔案可空格後在後面寫 cat<4. 單獨一行結束內容輸入

5. 匹配之前的括號) 完成 退出到命令列

shell變數賦值以及使用

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

awk中使用shell變數

其實在awk裡,是不能直接使用shell變數的 方法是 awk v 選項讓awk 裡使用shell變數 time 60 awk v time time begin 這樣要注意 在awk裡,time不能加 符號。網上說如下方法都可行 一 var 這種寫法大家無需改變用 括起awk程式的習慣,是老外常用...

awk中使用shell變數

1 通過命令列引數定義變數時引用 awk v awk變數名 shell變數名 bin bash var4bash test awk v var4awk var4bash begin 2 在awk中直接引用,使用 var 注意使用前格式必須是先用單引號括住再用雙引號括住 bin bash var te...