簡體   English   中英

Bash 如果變量不為空則執行代碼

[英]Bash Execute code if a variable is not empty

我希望你周末過得愉快

我正在嘗試創建一個腳本,該腳本僅在變量不為空並且變量為空時僅執行一次命令,如下所示:

#!/bin/bash
X=$1
function execute
{
if [ ! -z $X ]
then
  $*
fi
}
execute for count in 1 2 3 4
execute do
  execute echo $count
  echo $(hostname)
execute done

引號是你的朋友

您需要引用您的變量,並且您還應該使用 Bash 測試結構,除非可移植性是一個問題。 您的代碼可能還有其他問題,但這種重構應該可以解決您特別詢問的問題。

#!/bin/bash

x="$1"

execute () {
    if [[ -n "$x" ]]; then
      "$@"
    fi
}

for count in {1..4}; do
  execute echo "$count"
  echo $(hostname)
done

根據您的主機名,這將 output 類似於:

 1 localhost.local 2 localhost.local 3 localhost.local 4 localhost.local

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM