Questions tagged «quoting»

字符串通常用引号分隔,这引起了处理包含引号的字符串的问题。

8
$ *和$ @有什么区别?
考虑以下代码: foo () { echo $* } bar () { echo $@ } foo 1 2 3 4 bar 1 2 3 4 它输出: 1 2 3 4 1 2 3 4 我正在使用Ksh88,但是我也对其他常见的shell感兴趣。如果您碰巧知道特定外壳的任何特殊性,请提及它们。 我在Solaris的Ksh手册页中发现了以下问题: $ *和$ @的含义在不加引号或用作参数分配值或文件名时相同。但是,当用作命令参数时,$ *等效于``$ 1d $ 2d ...'',其中d是IFS变量的第一个字符,而$ @等效于$ 1 $ 2 .... 我尝试修改IFS变量,但没有修改输出。也许我做错了什么?
72 shell  quoting  ksh  arguments 

4
我如何回应美元符号?
例如,$PATH和$HOME 当我键入echo $PATH它返回我的$PATH,但我想回声这个词,$PATH而不是实际变量代表什么,echo "$PATH"也不起作用。
67 shell  quoting 

5
如何在shell中转义报价?
我在转义bash字符时遇到麻烦。我想在其他用户下运行命令时转义单引号和双引号。出于这个问题的目的,假设我想在屏幕上回显以下内容: 'single quote phrase' "double quote phrase" 如果还需要切换到其他用户,该如何转义所有特殊字符: sudo su USER -c "echo \"'single quote phrase' \"double quote phrase\"\"" 当然,这不会产生正确的结果。


5
如何运行涉及使用sudo重定向或管道传输的命令?
我正在尝试遵循我认为是使用sudo而不是root帐户的最佳实践。 我正在运行一个简单的concat文件操作,例如: sudo echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock 在以普通用户身份运行的“ >>”右侧,此操作失败。添加额外的sudo也会失败(预期的行为,因为通过管道传递给sudo命令而不是文件)。 例子仅此而已,但已在root帐户下进行了验证和测试。


5
将shell变量作为/ pattern /传递给awk
在我的一个shell函数中具有以下内容: function _process () { awk -v l="$line" ' BEGIN {p=0} /'"$1"'/ {p=1} END{ if(p) print l >> "outfile.txt" } ' } ,因此当称为时_process $arg,$arg将作为传递$1,并用作搜索模式。它以这种方式工作,因为shell扩展$1代替了awk模式!也l可以在awk程序中使用,用声明-v l="$line"。一切都很好。 是否有可能以相同的方式将模式作为变量进行搜索? 以下操作无效, awk -v l="$line" -v search="$pattern" ' BEGIN {p=0} /search/ {p=1} END{ if(p) print l >> "outfile.txt" } ' ,因为awk不会解释/search/为变量,而是按字面意义。
59 shell  awk  quoting  variable 



4
将字节回显到文件
我正在尝试使用i2c总线将rasberry Pi连接到某些显示器。首先,我想手动写入内容,尤其是字节到文件中。 如何将特定字节写入文件? 我已经读过一篇文章,并且我认为我的问题应该通过这样的方法解决 echo -n -e \x66\x6f\x6f > byteFileForNow 但是,当我使用nano而不是foo打开该文件时,我看到: x66x6fx6f 因此,反斜杠被转义,但字节本身未转义。这次我也只在没有-e的情况下尝试了相同的操作,因此我希望可以看到\ x66 \ x6f \ x6f,但是与以前一样。 因此,echo转义了反斜杠,单独的反斜杠和反斜杠,无论是否应该这样做。 任何想法如何解决这个问题? 根据手册页,应该已经完成​​了我想要的工作。

2
在命令行中如何解释括号?
在阅读有关如何设置的内容时grub,我遇到了一篇文章,声称我需要使用以下两种语法之一, echo \(hd0,0\) >> /boot/grub/grub.conf 要么 echo '(hd0,0)' >> /boot/grub/grub.conf 因为在命令行中,括号以特殊方式解释。括号有什么特别之处?他们如何解释?
45 bash  shell  quoting 


4
如何在此处文档中打印“ $”
如何在bash的here-doc中回显“ $”? 例如,我想在远程服务器上有一个包含内容的文件,例如$ABC=home_dir。 $ ssh hostname sudo -s <<EOF echo "$ABC=home_dir" > file EOF 但这将被视为变量。如何打印文字$?
43 bash  shell  quoting 


3
GNU查找并掩盖了某些shell的{}-哪个?
GNU查找手册页指出: -exec command ; [...] The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with …
34 shell  find  xargs  quoting 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.