3 回答

TA贡献1856条经验 获得超5个赞
read
cat
su
, ssh
, sh
, sudo
, bash
su root -c 'who am i'ssh user@remote uname -a sh -c 'who am i; echo success'
printf 'uname -a; who am i; uptime' | su printf 'uname -a; who am i; uptime' | ssh user@remote printf 'uname -a; who am i; uptime' | sh
ssh user@remote <<'____HERE' uname -a who am i uptime ____HERE sh <<'____HERE' uname -a who am i uptime ____HERE
sh
bash
sudo sh -c 'uname -a; who am i; uptime'
exit

TA贡献2021条经验 获得超8个赞
1.所有扩展都必须在父shell的范围内执行。
command <<DELIMITER...DELIMITER
#!/bin/basha=0mylogin=$(whoami)sudo sh <<END a=1 mylogin=$(whoami) echo a=$a echo mylogin=$mylogin END echo a=$a echo mylogin=$mylogin
a=0mylogin=leon a=0mylogin=leon
2.所有展开必须在子shell的范围内执行。
command <<'DELIMITER'...DELIMITER
#!/bin/basha=0mylogin=$(whoami)sudo sh <<'END' a=1 mylogin=$(whoami) echo a=$a echo mylogin=$mylogin END echo a=$a echo mylogin=$mylogin
a=1mylogin=root a=0mylogin=leon
3.必须在子shell中执行一些扩展,在父shell中执行一些扩展。
#!/bin/basha=0mylogin=$(whoami)sudo sh <<END a=1 mylogin=\$(whoami) echo a=$a echo mylogin=\$mylogin END echo a=$a echo mylogin=$mylogin
a=0mylogin=root a=0mylogin=leon
添加回答
举报