私は非常に最近bashを学びました。私はスクリプトの引数を読み込もうとしています。だから私は./test -so doc1
引数を解析するためのコードにエラーがあります
./tests2: line 13: syntax error near unexpected token `newline'
./tests2: line 13: ` done'
を実行したときに、私は次のエラーを取得する
#!/bin/bash
for ((i=1; i<=$#; i++)); do
if [[ ${!i:0:1} == "-" ]] && ! [[ ${!i:1} =~ [^a-zA-Z]+ ]]; then
for ((j=1; j<=$(($(expr length ${!i})-1)); j++)); do
if [[ ${!i:j:1} == "s" ]]; then
k=$((i+1))
if [ -e ${!k} ]; then
echo $(realpath ${!k})
fi
elif [[ ${!i:j:1} == "o" ]]; then
echo "Running script without output!"
fi
done
fi
done
することができます私はこれを書いたが、私はエラーを取得(とVimがピンク色で第四行の最後の二重のかっこをhighlitedました)誰でも私のスクリプトの何が間違っているのか理解できますか?
通常、インデックスを使用している場合は、何か問題があります。それはあなたが実際にマッチさせようとしていることは何ですか?おそらくもっと簡単で、はるかに慣用的な解決法があります。 – chepner
私はインデックスが何であるか分かりません。しかし、私は与えられたすべてのパラメータをチェックし、 "rm -rf ..."のように複数の文字が含まれているかどうかを確認しようとしていただけです。 –
また、 'bash'マニュアルページの' getopts'コマンド。 – chepner