এর পরে প্রথম যুক্তি sh -c inline-scriptযায় $0(যা ত্রুটির বার্তাগুলির জন্যও ব্যবহৃত হয়), এবং বাকীগুলি ভিতরে যায় $1, $2...
$ sh -c 'blah; echo "$0"; echo "$1"' my-inline-script arg
my-inline-script: blah: command not found
my-inline-script
arg
তাহলে তুমি চাও:
sh -c 'find "$1"' sh /tmp
(পুরানো দিনগুলিতে, আপনি shপ্রয়োগগুলি সন্ধান করতে পারেন যেখানে $1পরিবর্তে প্রথম আরগটি প্রবেশ করেছিল , তাই আপনি এটি করবেন:
sh -c 'find "$1"' /tmp /tmp
বা:
sh -c 'shift "$2"; find "$@"' sh 3 2 /tmp1 /tmp2
উভয় আচরণের জন্য অ্যাকাউন্ট করতে, কিন্তু পসিক্স প্রচলিত এবং প্রকাশ্যে উপলভ্য যে শেলগুলি এখন চলে গেছে)।
আপনি সেট করতে চান তাহলে $1, $2বর্তমান শেল মধ্যে একটি স্থানীয় সুযোগ, আপনি ফাংশন ব্যবহার করতে চাই কোথায়। বোর্নের মতো শেলগুলিতে:
my_func() {
find "$1"
}
my_func /tmp
কিছু শেল বেনামে ফাংশন সমর্থন করে। এটি এরকম zsh:
(){find "$1"} /tmp
বা es:
@{find $1} /tmp
স্থায়ীভাবে বর্তমান অবস্থানিক পরামিতিগুলি পরিবর্তন করতে সিনট্যাক্সটি শেল নির্ভর। dchirikov ইতিমধ্যে আবৃত করেছে বোর্ন মত শাঁস (বোর্ন, Korn থেকে, bash, zsh, POSIX, ash, yash...)।
বাক্য গঠনটি হ'ল:
set arg1 arg2 ... argn
তবে আপনার প্রয়োজন:
set --
সেই তালিকাটি খালি করতে (বা shift "$#") এবং
set -- -foo
সেটে $1দিয়ে শুরু কিছু -বা +, তাই এটি একটি ভাল অভ্যাস সবসময় ব্যবহার করেন set --, বিশেষ করে যখন যেমন নির্বিচারে ডেটা ব্যবহার set -- "$@" other-argঅবস্থানগত প্যারামিটার তালিকার শেষে আর্গুমেন্ট যোগ করতে।
cshপরিবারের শেলগুলিতে ( csh, tcsh), আপনি argvঅ্যারে নিয়োগ করে :
set argv=(arg1 arg2)
এর শাঁস সালে rcপরিবারের সাথে ( rc, es, akanga), এর *অ্যারে:
*=(arg1 arg2)
যদিও আপনি স্বতন্ত্রভাবে উপাদানগুলি বরাদ্দ করতে পারেন:
2=arg2
ইন fish, অবস্থানগত পরামিতিগুলি কেবলargv অ্যারেতে থাকে (না , সেখানে):$1$@
set argv arg1 arg2
ইন zsh, সাথে সামঞ্জস্যের জন্য csh, আপনি argvঅ্যারেতেও নিয়োগ করতে পারেন :
argv=(arg1 arg2)
argv[4]=arg4
এবং আপনি এটি করতে পারেন:
5=arg5
এর অর্থ আপনি এই জাতীয় জিনিসগুলিও করতে পারেন:
argv+=(another-arg)
শেষ পর্যন্ত যুক্তি যুক্ত করতে এবং:
argv[-1]=()
argv[2]=()
শেষ বা মাঝ থেকে কোনও যুক্তি সরাতে, যা আপনি সহজেই অন্যান্য শাঁস দিয়ে করতে পারবেন না।
(find $1) /tmpএকটি সিনট্যাক্স ত্রুটি। আসলে(any-command) more-argumentsএকটি বাক্য গঠন ত্রুটি। আপনি যা করার চেষ্টা করছেন তা কি আলাদাভাবে ব্যাখ্যা করতে পারেন?