gpt4 book ai didi

linux - 将 hash-sign-starting-string 参数传递给 shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:36 24 4
gpt4 key购买 nike

我尝试将包含在两个 # 符号之间的字符串传递给 ksh 脚本:

Will #> ./a.ksh #This is a string#

Will #>

没有任何提示,执行的输出将是:

Will #> ./a.ksh #This is a string#
#This is a string#

a.ksh 脚本下面。

a.ksh

echo $1
echo "$1"
echo ${1}
echo "${1}"

I have tried to protect my $1 variable by any means I knew but I can't get anything starting with # to be displayed.

以下内容无效:

#> ./a.ksh #Hello
#> ./a.ksh #

但是这样做:

#> ./a.ksh Hello#

任何 shell 大师都可以向我解释为什么以及如何让它按预期工作?

我可以使用 \#This String#"#This String#" 转义这些字符串,但我想知道为什么 # 没有自行打印。

最佳答案

# 被解释为注释的开始。解释器将忽略所有注释。

你有两个选择:

  1. 引用字符串使其成为文字:

    ./a.ksh "#This is a string#"

  2. 让您的脚本从用户那里读取输入而不是参数:

这是一个例子:

#!/bin/ksh
echo "Enter your text:"
read -r input
echo "You entered: $input"

然后先运行程序,然后输入你的数据:

$ ./a.ksh
Enter your text:
#This is a string#
You entered: #This is a string#

关于linux - 将 hash-sign-starting-string 参数传递给 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com