簡體   English   中英

使用bash數組作為腳本的參數?

[英]using a bash array as arguments to a script?

我正在嘗試構建一個數組,然后將其用作腳本的參數。 當我回應出我認為我正在建造的命令時,它看起來很好。 但是當我嘗試執行它時,沒有任何反應。 這是一個小例子。 在我的實際腳本中,我必須在運行時構建數組,所以我不能硬編碼(/tmp -iname "*.log*")而且它也必須在較舊的bash環境中運行,所以我不能使用+=附加到數組。

#!/bin/bash

args=( /tmp )
args[${#args[@]}]=-iname
args[${#args[@]}]="\"*.log\""

# the following echoes what I expect: find /tmp -iname "*.log"
echo find "${args[@]}"

# this next line does not appear to find any files
find "${args[@]}"

echo the following finds files 
find /tmp -iname "*.log"

我究竟做錯了什么?

不要在引號內使用引號,這應該有效:

#!/bin/bash

args=( /tmp )
args[${#args[@]}]=-iname
args[${#args[@]}]='*.log'

find "${args[@]}"

暫無
暫無

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

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