Таким образом, вы можете безопасно пройти через $PATH
с помощью одной петли, в то время как $IFS
останется неизменным внутри или снаружи петли.
while IFS=: read -d: -r path; do # `$IFS` is only set for the `read` command
echo $path
done <<< "${PATH:+"${PATH}:"}" # append an extra ':' if `$PATH` is set
Вы можете проверить значение $IFS
,
IFS='xxxxxxxx'
while IFS=: read -d: -r path; do
echo "${IFS}${path}"
done <<< "${PATH:+"${PATH}:"}"
, и на выходе будет что-то вроде этого.
xxxxxxxx/usr/local/bin
xxxxxxxx/usr/bin
xxxxxxxx/bin
Ссылка на еще один вопрос о StackExchange .
static void LogMessage(string format, params object[] args) {
File.AppendAllText("log.txt", string.Format(format, args));
}
LogMessage("Testing {0} {1}", 1, "hi");
Вы хотите создать вариативную функцию
C # использует params , чтобы сделать это
static void LogMessage(string formatString, params string[] formatArguments)
{
string.Format(formatString, formatArguments);
}
Обратите внимание, что ключевое слово params может использоваться только с параметром last в сигнатуре метода и требует, чтобы параметр был массивом .
Это просто синтаксический сахар для фактической передачи массива.
static void LogMessage(params string [] logList)
{
for ( int i = 0 ; i < logList.Length ; i++ )
doLogging(logList[i]);
}