Ketika saya memasukkan perintah
su > echo "sachin"
itu meminta kata sandi. Ketika saya memberikan kata sandi, beberapa hal aneh terjadi seperti yang Anda lihat:
Satu hal lagi: ada pengguna lain, Hadoop , di laptop saya, tetapi ketika saya melakukannya
su > echo "Hadoop"
ia mengatakan
tidak ada entri passwd untuk Hadoop
Apa artinya ini?
command-line
bash
sudo
Sachin Setiya
sumber
sumber
echo
Tidak dieksekusi. itu setelah perintah pengalihan ">", sehingga dibaca sebagai nama file. Sisa argumen dilewatkansu
seperti biasa!su $(echo "sachin")
. Itu akan melakukan apa yang Anda katakan.Jawaban:
Ah! Teka-teki yang bagus!
Katakan saja "
exit
", dan semua file Anda akan ada di sana (dan output yang Anda lewatkan dalam sebuah file bernamaecho
).Penjelasan:
sama dengan
Jadi Anda memulai (sub) shell dengan
su
(beralih pengguna) ke pengguna Anda, dengan semua output diarahkan ke file bernamaecho
!Lihat:
sumber
su user > echo
sepanjang waktu, dan> echo su user
dengan beberapa frekuensi, tetapisu > echo user
hampir tidak pernah, karena jarang ada alasan praktis untuk menulis perintah dengan cara yang membingungkan. (Bahwa sintaksis semacam itu diterima kadang-kadang berguna ketika secara otomatis menghasilkan perintah dari suatu program atau skrip.)su > stdout.txt user
tidak akan terlalu rumit ...