Perhatikan bahwa tidak ada perintah shell line . Ada sejumlah aplikasi shell yang tersedia untuk Linux.
Stéphane Chazelas
Jawaban:
21
Ini sangat mirip dengan backticks ``.
Ini disebut substitusi perintah ( spesifikasi posix ) dan memanggil subkulit. Perintah di kurung $()atau di antara backticks (``) dieksekusi dalam sebuah subkulit dan output kemudian ditempatkan pada perintah asli.
Berbeda dengan backticks, $(...)formulir dapat disarangkan. Jadi Anda bisa menggunakan substitusi perintah di dalam subtitusi lain.
Ada beberapa perbedaan dalam melarikan diri karakter dalam substitusi. Saya lebih suka $(...)formulir.
Dalam POSIX atau POSIX-seperti kerang ( ksh, bash, ash, zsh, yash...), itu seperti ``: perintah dalam $()dijalankan dan digantikan oleh keluaran standar. Pemisahan kata dan pembuatan nama file dilakukan kecuali $()ada di dalam tanda kutip ganda. Jadi
chmod 777 $(pwd)
harus diganti dengan:
chmod 777"$(pwd)"
untuk menghindari pemisahan kata dan pembuatan nama file pada jalur direktori kerja saat ini.
Atau bahkan lebih baik (kecuali di bawah beberapa shell, seperti zsh, kalau-kalau direktori telah diganti nama):
chmod 777"$PWD"
Karena $PWDmerupakan variabel khusus yang menyimpan path ke direktori yang aktif di shell POSIX.
Atau lebih baik lagi:
chmod 777.
Karena .entri dalam direktori saat ini adalah tautan keras ke direktori itu sendiri.
Ini $()digunakan untuk mengeksekusi perintah sebagian besar di dalam beberapa perintah lainnya.
chmod 777 $(pwd)
pwdperintah memberikan direktori kerja saat ini. Jadi, ketika semuanya dieksekusi, output pwd akan menggantikan posisinya dan berfungsi sebagai argumen chmod, dan hasilnya adalah semua direktori kerja Anda saat ini mendapatkan izin 777yang saya kira tidak boleh digunakan dalam lingkungan produksi;).
Jawaban:
Ini sangat mirip dengan backticks ``.
Ini disebut substitusi perintah ( spesifikasi posix ) dan memanggil subkulit. Perintah di kurung
$()
atau di antara backticks (``) dieksekusi dalam sebuah subkulit dan output kemudian ditempatkan pada perintah asli.Berbeda dengan backticks,
$(...)
formulir dapat disarangkan. Jadi Anda bisa menggunakan substitusi perintah di dalam subtitusi lain.Ada beberapa perbedaan dalam melarikan diri karakter dalam substitusi. Saya lebih suka
$(...)
formulir.sumber
echo `echo \`echo foo\`` bar
Dalam POSIX atau POSIX-seperti kerang (
ksh
,bash
,ash
,zsh
,yash
...), itu seperti``
: perintah dalam$()
dijalankan dan digantikan oleh keluaran standar. Pemisahan kata dan pembuatan nama file dilakukan kecuali$()
ada di dalam tanda kutip ganda. Jadiharus diganti dengan:
untuk menghindari pemisahan kata dan pembuatan nama file pada jalur direktori kerja saat ini.
Atau bahkan lebih baik (kecuali di bawah beberapa shell, seperti zsh, kalau-kalau direktori telah diganti nama):
Karena
$PWD
merupakan variabel khusus yang menyimpan path ke direktori yang aktif di shell POSIX.Atau lebih baik lagi:
Karena
.
entri dalam direktori saat ini adalah tautan keras ke direktori itu sendiri.sumber
Ini
$()
digunakan untuk mengeksekusi perintah sebagian besar di dalam beberapa perintah lainnya.pwd
perintah memberikan direktori kerja saat ini. Jadi, ketika semuanya dieksekusi, output pwd akan menggantikan posisinya dan berfungsi sebagai argumenchmod
, dan hasilnya adalah semua direktori kerja Anda saat ini mendapatkan izin777
yang saya kira tidak boleh digunakan dalam lingkungan produksi;).sumber