我在 bash 中转义字符时遇到问题。我想在不同用户下运行命令时转义单引号和双引号。出于这个问题的目的,假设我想在屏幕上回显以下内容:
'single quote phrase' "double quote phrase"
Run Code Online (Sandbox Code Playgroud)
如果我还需要切换到其他用户,我该如何转义所有特殊字符:
sudo su USER -c "echo \"'single quote phrase' \"double quote phrase\"\""
Run Code Online (Sandbox Code Playgroud)
当然,这不会产生正确的结果。
可能的重复:
如何在不影响文件的情况下递归应用 chmod 目录?
对目录应用执行权限(用于遍历)但对目录中包含的文件保留执行位的命令是什么?
在 bash 中,我可以执行以下操作:
if [ -f /tmp/test.txt ]; then echo "true"; fi
Run Code Online (Sandbox Code Playgroud)
但是,如果我sudo
在前面添加,它将不再起作用:
sudo if [ -f /tmp/test.txt ]; then echo "true"; fi
-bash: syntax error near unexpected token `then'
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它工作?
有没有一种简单的方法可以HostName
从命令行上的 ssh 配置中检索 a 的 IP ?很多时候我不得不使用scp
并想连接到一台机器,但我只记得主机名。
当我以 root 身份 ssh 时,我的 shell 是bash
,但是当它是非 root 用户时,它是sh
. 我怎样才能让它们都使用bash
?这实际上违背了这个问题的逻辑:为什么 root 的默认 shell 与其他普通用户帐户的默认 shell 配置不同?
我tmp
是/etc/fstab
这样配置的:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 2
Run Code Online (Sandbox Code Playgroud)
问题是现在/tmp
仅限于机器内存的一半,当它达到该限制时,我会收到“设备上没有剩余空间”错误。
我想让它“无限”,即增长到磁盘的大小。
Debian Jessie 上的 Gnome 桌面提供了简单的界面,可以在笔记本电脑上使用 WiFi 并将其变成热点。有没有办法让它在启动时自动执行,或者我可以为此创建一个“快捷方式”吗?