[英]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.