When you realized you forgot sudo

https://lemmy.world/post/13497675

When you realized you forgot sudo - Lemmy.World

fuck() { sudo $(fc -ln -1) }

This function takes the last command and puts sudo in front of it. Actually used it in a zoom call at work without thinking and it took a second to realize why everyone was laughing. Not my invention–came across it years ago on stackoverflow or someplace and thought it was funny/useful.

kmirl@tux:~$ ls /root ls: cannot open directory '/root': Permission denied kmirl@tux:~$ fuck [sudo] password for kmirl: bin debs docs Mail
Isn’t this the same effect as just running ‘sudo !!’ ?
no because it takes the previous command and adds sudo to it right?
!! is a shortcut for whatever the last command was is it not?
According to this super user question, someone said that !! won’t work in a function, so you must use the fc -ln -1 command in a subshell instead. Note the response that says eval shouldn’t be used (not sure why)
Creating an alias containing bash history expansion

I often forget to run a command with sudo, so I find myself often typing sudo !! immediately afterwards. I tried aliasing this, but bash chokes on the !! part. Is there some way to represent this

Super User
Yeah but instead of a function you just make it an alias.
Oh good point, I didn’t think about that

Eval shouldn’t be used on userinput. Meaning that if smb other than you may use this to change the system he could put malicious code in the eval part.

Probably doesn’t matter on shell level