\curl -L https://get.rvm.io | bash -s stable
Mengapa perintah dimulai \?
Ini adalah situs tempat saya melihatnya.
\curl -L https://get.rvm.io | bash -s stable
Mengapa perintah dimulai \?
Ini adalah situs tempat saya melihatnya.
Jawaban:
alias curl='curl --some --default --options'
Jika Anda memiliki alias untuk curldan Anda tidak ingin menggunakannya, meletakkan backslash di depan menonaktifkan alias dan menjalankan biner ikal secara langsung.
Perhatikan bahwa ini hanya berlaku pada shell interaktif. Alias tidak berlaku dalam skrip sehingga tidak perlu ada di sana.
\curltidak melewati fungsi shell yang dinamai curl. Untuk itu, Anda dapat menggunakan perintah built-in bash command:command curl ...
\curl ...adalahcommand curl ...
dash(dan mungkin kerang lainnya, meskipun Anda benar untuk bashtanpa expand_aliases) tidak memperluas alias dalam skrip.
Spesifikasi shell (Bourne / POSIX) mengatakan bahwa substitusi alias dalam shell interaktif ditekan ketika ada karakter kata perintah yang dikutip. Sebuah backslash adalah salah satu cara untuk melakukan itu, tetapi ada juga cara lain yang terkenal untuk mengutip: kutipan tunggal dan ganda. Semua hal berikut akan menekan penggantian alias:
\curl
cur\l
\c\u\r\l
"c"url
"curl"
"c""u""r""l"
'curl'
'cu'"rl"
Menggunakan \curl hanyalah cara yang paling umum dan mudah dibaca. Karena ini adalah fitur standar, Anda dapat mengharapkannya berfungsi di semua cangkang Bourne-heritage.
\curlterlihat agak seperti perintah TeX, bukan? :-)
\curlmemotong alias dengan nama yang sama; perhatikan bahwa hanya alias yang dilewati dengan cara ini, bukan fungsi shell ; command curl ...akan memastikan melewati baik .
command() { echo "Not command, lol!"; } ; command -V echo ; \command -V echo ; \command command echo "This is command! (masking despair)"mencetak Not command, lol!x 3.
command sendiri dengan fungsi shell, Anda mengalahkan mekanisme. Apa yang ditunjukkan oleh contoh Anda adalah yang \ tidak mem-bypass fungsi , seperti yang dinyatakan. Sebuah contoh non-diri sendiri: date() { echo 'not date'; }; date; command date. Jika Anda khawatir tentang berbahaya gangguan dengan command, melihat stackoverflow.com/a/35931876/45375
commanduntuk tidak ditimpa. Dari tautan Anda sendiri:Thus, with no control over the execution environment, you cannot write shell scripts that are fully immune to tampering, unless you know that your code will be executed by dash, ksh, or bash (with the workaround in place)
shopt -s expand_aliasessebelum menggunakan alias