通过 shell 脚本将 "raw" 命令行添加到 bashrc(不评估命令)
Add "raw" command line to bashrc via shell script (without evaluating the command)
也许我搜索错了,但我找不到任何解决方案...
我想使用 shell 脚本将以下内容附加到我的 bashrc 文件中(使 Linux 的 Windows 子系统的安装更容易):
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
这是我的 script.sh:
### Add useful stuff to bashrc
### --------------------------
echo "
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
" >> ~/.bashrc
这是在 运行 script.sh:
时附加到 bashrc 的内容
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=172.19.96.1:0.0
由于我的 IP 可能会改变,我想将原始命令本身附加到 bashrc,而不是命令的输出。我确定这一定是一个重复的问题,但我找不到有用的答案。许多答案仅引用 echo
或 cat
。 cat
产生相同的意外结果:
cat <<EOF >> ~/.bashrc
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
EOF
问题是使用双 quote/ticks 与单 quote/ticks
尝试颠倒使用 " 和 ',因为 " 将解释和 运行 命令,而 ' 将不解释或 运行 它。
这应该有效:
echo 'export DISPLAY=$(grep -m 1 nameserver script.sh | awk '\''{print }'\''):0.0' >> temp.txt
$ cat temp.txt
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
引用转义引号字符串中的文本:
也许我搜索错了,但我找不到任何解决方案...
我想使用 shell 脚本将以下内容附加到我的 bashrc 文件中(使 Linux 的 Windows 子系统的安装更容易):
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
这是我的 script.sh:
### Add useful stuff to bashrc
### --------------------------
echo "
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
" >> ~/.bashrc
这是在 运行 script.sh:
时附加到 bashrc 的内容# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=172.19.96.1:0.0
由于我的 IP 可能会改变,我想将原始命令本身附加到 bashrc,而不是命令的输出。我确定这一定是一个重复的问题,但我找不到有用的答案。许多答案仅引用 echo
或 cat
。 cat
产生相同的意外结果:
cat <<EOF >> ~/.bashrc
# Load X display (run 'XLaunch' on Windows with 'Disable access control' checked and 'Native opengl' unchecked!)
# https://sourceforge.net/projects/vcxsrv/
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
EOF
问题是使用双 quote/ticks 与单 quote/ticks
尝试颠倒使用 " 和 ',因为 " 将解释和 运行 命令,而 ' 将不解释或 运行 它。
这应该有效:
echo 'export DISPLAY=$(grep -m 1 nameserver script.sh | awk '\''{print }'\''):0.0' >> temp.txt
$ cat temp.txt
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print }'):0.0
引用转义引号字符串中的文本: