Shell 在ksh中有条件地排除echo语句
我希望在KornShell(ksh)脚本中使用详细/非详细模式 在verbose中,我需要使用Shell 在ksh中有条件地排除echo语句,shell,scripting,echo,ksh,Shell,Scripting,Echo,Ksh,我希望在KornShell(ksh)脚本中使用详细/非详细模式 在verbose中,我需要使用 echo blah blah blah 但在非详细的情况下,我不想排除那些echo语句 现在我猜有一个更好的/优雅的方法来实现这一点,而不是使用一个冗长的全局状态并进行 if [[ $verbose eq 1 ]] ; then echo blah blah blah fi 我是ksh的新手,不知道所有的窍门。 有人能建议一下可以做什么吗?哎呀,你说的是“ksh”,但这个概念非常相似 您可
echo blah blah blah
但在非详细的情况下,我不想排除那些echo语句
现在我猜有一个更好的/优雅的方法来实现这一点,而不是使用一个冗长的全局状态并进行
if [[ $verbose eq 1 ]] ; then
echo blah blah blah
fi
我是ksh的新手,不知道所有的窍门。
有人能建议一下可以做什么吗?哎呀,你说的是“ksh”,但这个概念非常相似
您可以这样做:
export DEBUG=1
[ $DEBUG -eq 1 ] && echo hi
hi
export DEBUG=0
[ $DEBUG -eq 1 ] && echo hi
bash -xv yourscript
或者,您可以使用“-xv”标志执行脚本,或者在开始处更改shebang行
#!/bin/bash -xv
Line 1 of your script...
Line 2 of your script
或者通过如下方式执行脚本:
export DEBUG=1
[ $DEBUG -eq 1 ] && echo hi
hi
export DEBUG=0
[ $DEBUG -eq 1 ] && echo hi
bash -xv yourscript
或者,您可以在登录/配置文件脚本中定义一个debug()函数,并在其中进行签入 哎呀,你说的是“ksh”,但这个概念非常相似
您可以这样做:
export DEBUG=1
[ $DEBUG -eq 1 ] && echo hi
hi
export DEBUG=0
[ $DEBUG -eq 1 ] && echo hi
bash -xv yourscript
或者,您可以使用“-xv”标志执行脚本,或者在开始处更改shebang行
#!/bin/bash -xv
Line 1 of your script...
Line 2 of your script
或者通过如下方式执行脚本:
export DEBUG=1
[ $DEBUG -eq 1 ] && echo hi
hi
export DEBUG=0
[ $DEBUG -eq 1 ] && echo hi
bash -xv yourscript
或者,您可以在登录/配置文件脚本中定义一个debug()函数,并在其中进行签入 这只适用于
ksh
、bash
或任何POSIX
或bourne shell衍生品:
$ debug=true
$ $debug && echo blah blah blah
blah blah blah
$ debug=false
$ $debug && echo blah blah blah
$
这只适用于
ksh
、bash
或任何POSIX
或伯恩壳牌衍生品:
$ debug=true
$ $debug && echo blah blah blah
blah blah blah
$ debug=false
$ $debug && echo blah blah blah
$
无需进一步ado(在ksh和bash中有效,而不是POSIX sh中有效):
无需进一步ado(在ksh和bash中有效,而不是POSIX sh中有效):
不需要环境变量,它将在没有“
导出
”的情况下工作。不需要环境变量,它将在没有“导出
”的情况下工作