Bash與
與source
命令相反
我在我的 bash 腳本中使用該
source
命令來讀取/列印變數值more linuxmachines_mount_point.txt export linuxmachine01="sdb sdc sdf sdd sde sdg" export linuxmachine02="sde sdd sdb sdf sdc" export linuxmachine03="sdb sdd sdc sde sdf" export linuxmachine06="sdb sde sdf sdd" source linuxmachines_mount_point.txt echo $linuxmachine01 sdb sdc sdf sdd sde sdg
source
為了取消設置變數,相反的是什麼?預期成績
echo $linuxmachine01 < no output >
使用子外殼(推薦)
在子 shell 中執行 source 命令:
( source linuxmachines_mount_point.txt cmd1 $linuxmachine02 other_commands_using_variables etc ) echo $linuxmachine01 # Will return nothing
子外殼由括號定義:
(...)
. 當子shell 結束時,在子shell 中設置的任何shell 變數都會被遺忘。使用未設置
這將取消設置導出的任何變數
linuxmachines_mount_point.txt
:unset $(awk -F'[ =]+' '/^export/{print $2}' linuxmachines_mount_point.txt)
-F'[ =]+'
告訴 awk 使用空格和等號的任意組合作為欄位分隔符。/^export/{print $2}
這告訴 awk 選擇以開頭的行,
export
然後列印第二個欄位。
unset $(...)
這將在內部執行命令
$(...)
,擷取其標準輸出,並取消設置由其輸出命名的任何變數。