Bash 脚本 - 如何保留传递给 bash 函数的换行符?
Bash script - How to preserve new line character passed to bash function?
我有两个文件:
touch a.txt
touch b.txt
在 bash 中,我想将它们逐一列出。
#!/bin/bash
var=$(ls -1 *.txt)
echo "$var"
因为有双引号:echo "$var" 命令每个文件都显示在单独的行中(这就是我想要的):
a.txt
b.txt
现在进入正题。如果我添加功能:
#!/bin/bash
function fun_cmd () {
}
var=$(ls -1 *.txt)
fun_cmd "echo $var"
echo 命令将它们显示在一行中:
a.txt b.txt
在最后一个示例(函数)中,我希望输出显示为两行,就像第一个示例一样。
- 始终正确引用!
- 不要使用单个参数,而是使用函数的所有参数
"$@"
#!/usr/bin/env bash
function fun_cmd () {
"$@"
}
var="$(ls -1 -- *txt)"
fun_cmd echo "$var"
我有两个文件:
touch a.txt
touch b.txt
在 bash 中,我想将它们逐一列出。
#!/bin/bash
var=$(ls -1 *.txt)
echo "$var"
因为有双引号:echo "$var" 命令每个文件都显示在单独的行中(这就是我想要的):
a.txt
b.txt
现在进入正题。如果我添加功能:
#!/bin/bash
function fun_cmd () {
}
var=$(ls -1 *.txt)
fun_cmd "echo $var"
echo 命令将它们显示在一行中:
a.txt b.txt
在最后一个示例(函数)中,我希望输出显示为两行,就像第一个示例一样。
- 始终正确引用!
- 不要使用单个参数,而是使用函数的所有参数
"$@"
#!/usr/bin/env bash
function fun_cmd () {
"$@"
}
var="$(ls -1 -- *txt)"
fun_cmd echo "$var"