【问题标题】:shell concat directory and interpret caractereshell concat 目录和解释字符
【发布时间】:2017-11-29 06:42:26
【问题描述】:

我尝试在目录中循环读取文件 (*.pem)

我必须使用 path="/opt/test" 。如何用*.pem连接路径(目录下所有文件以pem为扩展名)

for fichierCourant in $path/(*.pem) or "$path/*.pem" or `$path/*.pem` or 
'$path/*.pem'
do

.. 完成

没有任何效果?

谢谢

【问题讨论】:

  • 你试过$path/*.pem 吗?
  • 如果我这样做 $path\*.pem 它适用于解释它读取文件但不能再在文件中识别命令证书尽管直接使用 sh ./myshell.sh /opt/test 进行识别跨度>
  • $path/*.pem 如果我直接使用 sh 它可以工作,但我之前使用 c++ 和 execve
  • 它不起作用
  • 如果$path/*.pem(带有正斜杠/,而不是反斜杠`\`)有效,那么您的问题就解决了。如果您的问题更广泛,我建议使用您执行的特定命令行编辑您的描述。

标签: bash shell path interpreter


【解决方案1】:

当路径可以包含空格或制表符时,必须在双引号之间

for fichierCourant in "$path/"*.pem; do

【讨论】:

    【解决方案2】:

    尝试不带引号,如果没有文件不包含任何空格,则此方法有效。

    for file in $path/*.pem
    do
        echo $file
    done
    

    使用双引号“$path/*.pem”,虽然会扩展但将所有文件视为单个变量。 附加信息: '单引号':不扩展变量 backtick (or) backquote:将内容视为命令

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2015-04-10
      • 2012-07-23
      相关资源
      最近更新 更多