![](/img/trans.png)
[英]How to get the Directory name and file name of a bash script by bash?
[英]parenthesis in a directory name in bash script
我在意外令牌'('附近执行bash语法错误时遇到错误
我知道错误是由')'引起的,但我认为将命令放在''之间是为了允许在目录名称中使用括号。 如何在不重命名的情况下解决此问题?
bash -c 'cd /tmp/h1/clients/04212015142432811_Fs_1000_ahh/pls/03sox_a_Fs_1000_ahh_(000_bit)_(0.0000
0sig_in_deg)_to_(508_bit)_(30.00000sig_in_deg) && exec bash xfade.sh'
请注意:它是从octave内部调用的,类似于matlab的数学程序
你为什么要打扰一个外壳? 引用cd
的参数:
(cd '/tmp/h1/clients/04212015142432811_Fs_1000_ahh/pls/03sox_a_Fs_1000_ahh_(000_bit)_(0.00000sig_in_deg)_to_(508_bit)_(30.00000sig_in_deg)' && exec bash xfade.sh)
如果您真的必须使用额外的bash -c
...
dirname='/tmp/h1/clients/04212015142432811_Fs_1000_ahh/pls/03sox_a_Fs_1000_ahh_(000_bit)_(0.00000sig_in_deg)_to_(508_bit)_(30.00000sig_in_deg)'
bash -c 'cd "$1" && exec bash xfade.sh' _ "$dirname"
您需要在传递给bash子shell的命令字符串中引用路径。 例如:
bash -c 'cd '"'"'/tmp/h1/clients/04212015142432811_Fs_1000_ahh/pls/03sox_a_Fs_1000_ahh_(000_bit)_(0.00000sig_in_deg)_to_(508_bit)_(30.00000sig_in_deg) && exec bash xfade.sh'"'"''
由于运行bash -c将参数字符串传递给新的shell,您会收到此错误。 参数字符串将使用外部(调用)外壳去除单引号。
更新:正确引用单引号内的单引号,如查尔斯·达菲指出的
bash -c可以使用双引号吗?
bash -c "cd '/tmp/h1/clients/04212015142432811_Fs_1000_ahh/pls/03sox_a_Fs_1000_ahh_(000_bit)_(0.00000sig_in_deg)_to_(508_bit)_(30.00000sig_in_deg)' && exec bash xfade.sh"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.