shell編寫踩過的坑

2022-08-23 21:00:16 字數 704 閱讀 9325

1、linux在shell中執行命令並將結果賦值給變數

#通過埠號獲取容器名稱

container_name=`docker ps |grep "$port" |awk -f "[ ]+" ''`

2、if判斷

if [ ! container_name ];then

執行時報 [!: not found 的錯誤,if判斷那塊有個坑, if後面加空格,條件兩邊也得加空格。

3、同一指令碼,以sh+指令碼名,bash+指令碼名執行,結果不一樣

/bin/sh/bin/bash雖然大體上沒什麼區別,但仍存在不同的標準。標記為#!/bin/sh的指令碼不應使用任何posix沒有規定的特性 (如let等命令, 但#!/bin/bash可以)。debian曾經採用/bin/bash更改/bin/dash,目的使用更少的磁碟空間、提供較少的功能、獲取更快的速度。但是後來經過shell指令碼測試存在執行問題。因為原先在bash shell下可以執行的shell script (shell 指令碼),在/bin/sh下還是會出現一些意想不到的問題,不是100%的兼用

git踩過的坑

4.git 修改當前的project的使用者名稱的命令為 git config user.name 你的目標使用者名稱 git 修改當前的project提交郵箱的命令為 git config user.email 你的目標郵箱名 如果你要修改當前全域性的使用者名稱和郵箱時,需要在上面的兩條命令中新增...

springboot踩過的坑

設定上下文路徑context path不生效 springboot 2.0之前的語法 server.context path xx 2.0之後的語法 server.servlet.context path xx 在配置yml時,報錯如下 caused by org.yaml.snakeyaml.sc...

SQL UNION踩過的坑

union 操作符用於合併兩個或多個 select 語句的結果集。請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。select column name s from table name1 union...