3
シェルスクリプトでの$ {1 +“ $ @”}の意味と、「$ @」との違いは何ですか?
Perlのドキュメントでは、perlrun(1)は、バイリンガルシェル/ Perlヘッダーを使用してPerlスクリプトを起動することを提案しています。 #!/bin/sh #! -*-perl-*- eval 'exec perl -x -wS $0 ${1+"$@"}' if 0; どういう${1+"$@"}意味ですか?"$@"代わりに(Bashを/ bin / shとして使用して)使用してみましたが、同様に機能するようです。 編集 以下の2つの回答は、にあるはずだと言っています${1:+"$@"}。${parameter:+word}bash(1)で文書化されている( "Use Alternate Value")構文を知っています。しかし、私は納得できません。なぜなら 両方${1+"$@"}と"$@"うまく、パラメータがない場合でも作業。としてsimple.shを作成した場合 #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 "$@"' if 0; #!perl use Data::Dumper; print Dumper(\@ARGV); およびquestion.shとして #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 ${1+"$@"}' …