BASH 以變數的形式執行shell命令

2021-09-01 21:52:04 字數 536 閱讀 4908

有時候需要執行組裝的命令或者外部(例如檔案)定義的命令,需將這些命令定義為乙個變數,然後執行。

cmd="ls -l"

$cmd

但這種方式不適用於多個命令或者一些複雜的命令,例如
cmd="ls -l > a.log 2>&1"

$cmd

cmd="cd; ls -l"

$cmd

會報如下錯誤(a.log存在)
ls: >: no such file or directory

ls: 2>&1: no such file or directory

-rw-r--r-- 1 v504613 acsot 641 feb 6 16:36 a.log

./a.sh: line 10: cd;: command not found

cmd="ls -l"

eval $cmd

cmd="ls -l > a.log 2>&1"

eval $cmd

cmd="cd; ls -l"

eval $cmd

以root使用者執行jenkins中shell命令

以centos系統為例,記錄下修改jenkins以root使用者執行的方法。修改jenkins配置檔案 開啟配置檔案 vim etc sysconfig jenkins 修改 jenkins user,並去掉當前行注釋 jenkins user root 修改jenkins相關資料夾使用者許可權 c...

以服務形式執行SVN(svnserve)

註冊svnserve到系統服務 安裝目錄不帶空格 sc create svnserve binpath c svnserve svnserve.exe service root c repos displayname subversion depend tcpip start auto 安裝目錄帶空...

BASH 通過變數執行命令

問題 你希望根據實際情況執行不同的命令,怎麼去實現呢?解決方案 有很多問題解決這個問題,這也是指令碼要解決的。後面的章節中有很多的程式設計邏輯可以解決這個問題,比如 if then else,case 語句。fn tmp x.x prog echo prog fn prog cat prog fn ...