Bash: opsional memberikan argumen ke perintah

21

Saya mencoba menambahkan argumen ke panggilan perintah tergantung pada variabel lain. Silakan lihat kode skrip shell:

curl \
  $([ -z "${title}" ] || echo --data-urlencode title=${title}) \
  http://example.com

Dalam contoh, jika titlediberikan bukan nol, argumen akan ditambahkan curl.

Ini tidak berfungsi dengan benar jika titlemengandung spasi. Juga saya tidak bisa dikelilingi $(...)dengan kutipan, karena jika titlenol, itu akan menghasilkan argumen kosong yang tidak terduga curl.

Apa yang harus saya lakukan untuk membuatnya berfungsi seperti yang diharapkan.

Shou Ya
sumber

Jawaban: