Bash脚本语法 - script_name $ 1 1>文件

时间:2016-05-18 07:07:10

标签: bash unix

这个命令在bash脚本中的含义是什么?

my_script.sh $FILE_NAME.res 1> $FILE_NAME.xml

这是否意味着只有在脚本运行且不失败的情况下才会创建我的xml?

2 个答案:

答案 0 :(得分:2)

my_script.sh $FILE_NAME.res 1> $FILE_NAME.xml

假设 FILE_NAME 是一个变量,脚本my_script.sh将采用

$ FILE_NAME.res 作为参数并将标准输出重定向到 $ FILE_NAME.xml

建议您双引号变量以避免抽象和分词

my_script.sh "$FILE_NAME".res 1> "$FILE_NAME".xml

此I / O重定向上的[article]表示:

  

stdin,stdout和stderr的文件描述符是0,1和2,   分别

关于:

  

这是否意味着只有在脚本运行时才会创建我的xml   没有失败?

在正常情况下,无论脚本是否按预期运行,脚本中的任何输出(stdout)都将重定向到.xml文件。

<强>例外:

  1. set -e 选项将导致脚本中的命令失败时退出脚本。后面的命令输出不会写入文件。
  2. 脚本中还有其他重定向。
  3. 脚本外有多个重定向,例如。 ./script >file1 >file2。此处输出将重定向到场景中最后的file2

答案 1 :(得分:1)

my_script.sh $FILE_NAME.res 1> $FILE_NAME.xml
   ^                  ^     ^         ^
run this script       |     |         |
             with this file |         |
               argument     |      to this file
                         redirect
                           stdout

$FILE_NAME将从环境变量FILE_NAME设置的任何内容中展开。另请注意,>1>的更常见形式。